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 - 如何正确使用父元素

javascript - 如果启用复选框,如何定向到不同的 url

javascript - 将数据从 onSnapshot firestore 分配给 Vue ref 变量时出现问题

javascript - 选择祖先的问题

javascript - 如何在页面上显示和隐藏某些 div?

javascript - Javascript 中 DOM 元素的跨浏览器导航

javascript - 如何能够单击 map 区域并在列表中显示数据?

javascript - 对象继承

javascript - 带有 Highstocks/Highcharts 的 jQuery 日期选择器

javascript - 为什么 jQuery UI 使用 CSS 类而不是伪类?