function foo() { "use strict"; console.log( this.a );
}var a = 2;
foo();使用严格模式,默认绑定无法到达全局,出现undefined这个可以理解
但是
用一个匿名函数就:
function foo() {
console.log( this.a );
} var a = 2;
(function(){ "use strict";
foo(); // 2
})();这要如何理解,这里的this不是应该指向匿名函数?调用栈不是全局=>匿名函数=>foo?
补充:疑惑在于为什么第二种写法会是那样的结果。
备注:讨论只局限在es3范畴,请不要用胖箭头它的this指向和es3不同
慕桂英3389331
元芳怎么了
随时随地看视频慕课网APP
相关分类