我正在一个AngularJS项目中,其中有一个.constant()
提供程序来声明整个项目中使用的一些基本信息。例如,cookie名称的定义。例如:
.constant('appConst', {
cookie: 'CookieName',
...
});
但是通过声明
const
可以完成同一件事:const appConst = {
cookie: 'CookieName',
...
}
那么,使用
.constant
提供程序而不只是声明const
的优势是什么?我知道原因之一是因为我们不期望价值会改变。但这不是const
的目标吗? 最佳答案
新的const
关键字只是使它成为可能,所以您不能重新分配该变量,也不会使您最初分配给它的任何对象不变。因此,在您的示例中:
const appConst = {
cookie: 'CookieName',
...
}
您仍然可以更改
cookie
的值。您只是不允许这样做:appConst = { // My new object };
角度
.constant()
中的值也可以更改,因此在单词“ constant”的常用用法中它们不是恒定的。至少不是这样使用时:.constant('appConst', {
cookie: 'CookieName',
...
});
因此,例如,如果您这样做并更改控制器中的值
app.controller('myController', function(appConst){
appConst.cookie = 'NewCookieName';
})
构造此控制器后,更改将反映在您注入
appConst
的任何位置。但是,在这种情况下,您不能“重新分配”
appConst
,该操作将被忽略,因此在这种意义上是恒定的。关于javascript - 如果可以声明JS const,为什么还要使用AngularJs .constant()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43022566/