web-interview icon indicating copy to clipboard operation
web-interview copied to clipboard

[编程题] 12. 请写出以下代码的执行结果

Open qiilee opened this issue 6 years ago • 1 comments

var obj = {};
var events = { m1: "clicked", m2: "changed"};
for(e in events) {
    obj[e] = function() {
        alert(events[e])
    }
}

alert(obj.m1 == obj.m2);
obj.m1();
obj.m2();

答案:

qiilee avatar Oct 24 '19 10:10 qiilee

答案应该是 false changed changed

  • e的话应该是没有块级作用域的,所以e会随迭代而变化。第一次迭代指向的e变化后也会指向changed。
  • 改的话应该改为加上let或者const就可以,它们是有块级作用域的。

以上是我的看法,请指正。

Haltz avatar Jul 25 '20 07:07 Haltz