web-interview
web-interview copied to clipboard
[编程题] 12. 请写出以下代码的执行结果
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();
答案:
答案应该是 false changed changed
- e的话应该是没有块级作用域的,所以e会随迭代而变化。第一次迭代指向的e变化后也会指向changed。
- 改的话应该改为加上let或者const就可以,它们是有块级作用域的。
以上是我的看法,请指正。