像对象一样的angular.constant采用相同的ref

时间:2016-02-22 14:54:28

标签: angularjs

为什么我定义一个像

这样的常量对象
app.constant('TEST', { title: 'Hello' });

我在控制器中做了这个

var x = TEST;
x.title = 'Hello World';
console.log(TEST);

常数的值一直在变化?我读过angular的doc,它说常量不能改变它们的价值。

1 个答案:

答案 0 :(得分:0)

如果常量值是原始值(即1,true,“appName”),则不能更改常量的值。然而,Angular 1.x是一个问题,如果常量是一个对象,它的属性仍然是可分配的。从语义上讲,是的,我们希望这些值永远不会改变,但框架不会对提供的对象进行任何包装,以防止开发人员对其进行变更。

你可以在这里阅读更多内容: http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/