在此JS MDN页面是这样写的:
JavaScript 1.8.1 note
Starting in JavaScript 1.8.1, setters are no longer called when setting properties in object and array initializers.
我只是不明白这是要告诉我什么。
最佳答案
此代码片段:
var o = {};
o.seven = 7;
和这个代码片段:
var o = { seven: 7 };
通常是等价的;但如果它们前面有这段代码片段:
Object.prototype.__defineSetter__('seven', function(x) { alert(x); });
那么只有前者会提醒 7
(因为 setter 被 o.seven = 7
调用,而不是被 o = { seven: 7 }
),并且只有后者会实际将 o.seven
设置为 7
。
关于javascript - 在对象初始值设定项中设置属性时不再调用 setter : what does this mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040367/