javascript - 在对象初始值设定项中设置属性时不再调用 setter : what does this mean?

标签 javascript

在此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/

相关文章:

javascript - 当模态打开时停止在主体上滚动并允许在模态 div 上滚动

javascript - Angularjs 和 Google map API

javascript - 在循环之前定义数组的长度是一种好习惯吗?

javascript - ajax 调用如何将数据返回给变量?

javascript - 有没有办法使用 js-ctypes 自动管理 native 代码分配的内存?

javascript - 将附加变量附加到 ajax 处理输入类型文件

javascript - 如何在不给他们 id 的情况下获取 li 的文本?

javascript - 在 View 的事件属性中使用 backbone.js 监听与 @el 相关的事件

javascript - 如何向 URL 添加参数,然后使用 Greasemonkey 重新加载页面?

javascript - 即使将操作处理程序放入 'actions' 对象后,我仍然不断在 Emberjs 中收到弃用消息