严格模式很棒,可以使您的代码更整洁,但是我遇到了一个非常奇怪的行为。 如果您调用表达式函数或语句函数没关系,那么javascript引擎会在对象和外部环境引用旁边以及所有其他方面创建this关键字,但是对于每个执行上下文,this关键字都引用全局执行上下文的此关键字无论如何。对 ?!除非您调用的函数是一个方法,意味着它在一个已声明的对象内部(就词汇环境而言),对吗?!
如果我们这样走:
console.log(this); //will output the window object.
function a(){
console.log(this); // also refers to the window object
}
但是,如果我们使用严格模式,则此关键字出现未定义
var b = function(){
"use strict";
console.log(this); // undefined
}
为什么?!任何说明