初始问题
下面的代码应该返回1
,3
,因为x: 1
只是出现在return
语句之上--然而,它返回的是3
,1
。为什么会这样呢?当我们使用let
和/或const
时,结果是否相同?
如果你们能解释一下那就太好了,这样我就可以提高我的基本功了。下面是我的代码:
var x = 3;
var foo = {
x: 2,
baz: {
x: 1,
bar: function() {
console.log("this--->", this);
return this.x;
}
}
}
var go = foo.baz.bar;
alert(go());
alert(foo.baz.bar());
更新1:
在第一种情况下,bar
被认为是一个可以访问外部变量并输出3
的闭包
bar: function() { console.log("this--->", this); return this.x; }
https://stackoverflow.com/questions/56638406
复制相似问题