这个问题在这里已有答案:
我是Javascript的新手,在使用匿名函数表达式时只是关于'this'的问题。
const testFunction = function () {
this.xxx = xxx;
};
后来我称之为:
testFunction()
并且会有错误,因为在这种情况下我们不能使用'this',
但不是'this'指的是窗口对象吗?
如果您的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();