我在 Ember 对象上看到了这种奇怪的行为,当我更改 I 的数组时instance.get
,更改将应用于类默认值(因此,应用于对象的任何新实例)。
但是,如果我将 alter 设置为计算属性,它会很好地工作(因为它确保我总是发送一个新的数组实例)。
我想知道这是正常行为吗,在我看来它不应该是这样,但我很可能误解了一些事情。
这是一个示例(可在此 jsfiddle中获得):
A = Ember.Object.extend
array: []
a = A.create()
a.get('array').pushObject('something') # same with push
b = A.create()
b.get('array') # ['something']
B = Ember.Object.extend
array: ( ->
[]
).property()
a = B.create()
a.get('array').pushObject('something else')
b = B.create()
b.get('array') # []