Javascript中是否提升了对象属性?

时间:2015-12-27 15:21:11

标签: javascript

JavaScript是否提升对象属性(参见下面的用例)?

(环顾四周,我已经看到变量也被提升了 - 对象属性只是变量提升的一个特例吗?)

let obj = {};

$(".hey").each((i, obj) => {
  $(obj).click(obj.hey);
});

obj.hey = () => {
  $("#hey").html("Hey!");
};

1 个答案:

答案 0 :(得分:3)

答案是,对象属性分配未被提升。这只是一个简单的赋值表达式。

您发布的代码不会遇到任何错误,因为引用到未定义的属性只是一个值为\r?\n的表达式。因此,undefined循环要求jQuery建立一个事件处理程序,但是传递它.each(),它将不执行任何操作,或者可能触发一个" click"关于目标要素的事件。