使用严格模式会导致在引用函数的this关键字时出现问题

时间:2019-09-27 14:30:18

标签: javascript

严格模式很棒,可以使您的代码更整洁,但是我遇到了一个非常奇怪的行为。 如果您调用表达式函数或语句函数没关系,那么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
}

为什么?!任何说明

0 个答案:

没有答案