问题描述
我正在尝试在函数中使用“this”关键字,这是有效的
var test = function(){
console.log(this); //console logs the window object
}
(function(){
test();
});
但是,当我尝试使用严格模式时,这是未定义的?
'use strict';
var test = function(){
console.log(this); //undefined
}
(function(){
test();
});
我想知道是否可以在严格模式下从函数内部访问 this 关键字?
非常感谢任何帮助。
所以对于任何面临同样问题的人 这有效
'use strict';
var test = {
fname:'kalesh',check: function(){
console.log(this.fname);
}
};
(function(){
test.check();
})();
似乎在严格模式下必须在对象内部才能使用此关键字,而不仅仅是在函数内部
解决方法
如果您只想将窗口对象应用于此,您可以使用 call(window)
或 apply(window)