JavaScript是否提升对象属性(参见下面的用例)?
(环顾四周,我已经看到变量也被提升了 - 对象属性只是变量提升的一个特例吗?)
let obj = {};
$(".hey").each((i, obj) => {
$(obj).click(obj.hey);
});
obj.hey = () => {
$("#hey").html("Hey!");
};
答案 0 :(得分:3)
答案是否,对象属性分配未被提升。这只是一个简单的赋值表达式。
您发布的代码不会遇到任何错误,因为引用到未定义的属性只是一个值为\r?\n
的表达式。因此,undefined
循环要求jQuery建立一个事件处理程序,但是传递它.each()
,它将不执行任何操作,或者可能触发一个" click"关于目标要素的事件。