似乎是一个简单的问题,但无法使其发挥作用。
在下面的示例中,将调用unselect,但未定义公共变量“this.backSelected”。如果我将unselect方法的代码直接移动到public off方法中就可以了。
如何在私有方法中检查公共变量?我不明白为什么这不起作用。
感谢。
function MyClass()
{
// public vars
this.isActive = false;
this.backSelected = false;
// public methods
this.on = function() {
this.isActive = true;
this.backSelected = true;
// set back button on image
}
this.off = function() {
this.isActive = false;
unselect();
}
// private methods
function unselect() {
if(this.backSelected) {
// set back button off image
}
};
}
var obj = new MyClass(); obj.on(); obj.off();
答案 0 :(得分:5)
您没有在上下文中调用unselect
,因此this
并不代表您认为的含义。
unselect.apply(this);