全局窗口对象是否对其某些属性有特殊规则?例如,您似乎无法将事件属性/方法设置为函数以外的任何内容:
console.log(window.onclick) // null
window.onclick = 1;
console.log(window.onclick) // null (?)
onclick
的属性属性似乎没有什么特别之处:
console.dir(Object.getOwnPropertyDescriptor(window, 'onclick'));
*/ returns {
configurable: true,
enumerable: true,
value: null,
writable: true
} */
但是如果你将window.onclick设置为一个函数,则属性会按预期更改:
window.onclick = function() {
alert();
};
console.log(window.onclick); // logs: function() { alert(); }