javascript中有两种类型的作用域 功能范围 全球范围
现在我正在执行此代码
function abc()
{
alert(this);
}
abc();
abc调用返回我[对象窗口] 为什么??函数创建另一个范围,以便它代表窗口
答案 0 :(得分:7)
this
将是调用该函数的对象。在您的情况下,您不是在任何对象上调用它。因此,默认情况下this
引用global
对象,在浏览器中,它是window
对象。
但在strict
模式下,如果您这样调用它,this
将为undefined
。
"use strict";
function abc() {
console.log(this); // undefined
}
abc();
或者
function abc() {
"use strict";
console.log(this); // undefined
}
abc();
答案 1 :(得分:1)
您的功能位于全局(窗口)对象下。我的意思是,
function abc()
{
alert(this);
}
abc();
// or You can either call by
window.abc()
您可以在自定义对象
下编写函数// Function under custom object
var customObj = {
abc : function () {
alert(this);
}
};
customObj.abc()
答案 2 :(得分:0)
this
关键字是指函数所属的对象,如果函数属于无对象,则为窗口对象。
<强>参考强>
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this