嵌套函数中的 Javascript “this” 指针
2022-08-30 05:24:54
我有一个关于如何在嵌套函数场景中处理“this”指针的问题。
假设我将以下示例代码插入到网页中。当我调用嵌套函数“doSomeEffects()”时,我收到一个错误。我在Firebug中检查了一下,它表明当我处于嵌套函数中时,“this”指针实际上指向全局“window”对象 - 这是我没想到的。我一定没有正确理解某些东西,因为我认为既然我在对象的函数中声明了嵌套函数,那么它应该具有与函数相关的“本地”范围(即“this”指针将引用对象本身,就像我在第一个“if”语句中一样)。
任何指针(没有双关语)将不胜感激。
var std_obj = {
options : { rows: 0, cols: 0 },
activeEffect : "none",
displayMe : function() {
// the 'this' pointer is referring to the std_obj
if (this.activeEffect=="fade") { }
var doSomeEffects = function() {
// the 'this' pointer is referring to the window obj, why?
if (this.activeEffect=="fade") { }
}
doSomeEffects();
}
};
std_obj.displayMe();