为什么在javascript中使用匿名函数表达式时无法访问'this'? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我是Javascript的新手,在使用匿名函数表达式时只是关于'this'的问题。

const testFunction = function () {
   this.xxx = xxx;
};

后来我称之为:

testFunction()

并且会有错误,因为在这种情况下我们不能使用'this',

但不是'this'指的是窗口对象吗?

javascript
1个回答
0
投票

如果您的JavaScript在Web浏览器中运行,则在默认情况下,this将成为window对象。

const testFunction = function() {
  console.log(this === window);
};

testFunction();

如果启用strict mode,则不会。

自动装箱不仅是性能成本,而且在浏览器中暴露全局对象也存在安全隐患,因为全局对象提供了对“安全”JavaScript环境必须限制的功能的访问。因此,对于严格模式函数,指定的函数不会被装入对象中,如果未指定,则将是未定义的:

"use strict";
const testFunction = function() {
  console.log(this === window);
};

testFunction();
© www.soinside.com 2019 - 2024. All rights reserved.