JavaScript类-在私有方法中访问公共变量时遇到问题

JavaScript类-在私有方法中访问公共变量时遇到问题,javascript,Javascript,这似乎是一个简单的问题,但无法实现 在下面的示例中,调用了unselect,但未定义公共变量“this.backselect”。如果我将unselect方法的代码直接移动到public off方法中,它就会工作 如何在私有方法中检查公共变量?我不明白这为什么不起作用 谢谢 function MyClass() { // public vars this.isActive = false; this.backSelected = false; // public

这似乎是一个简单的问题,但无法实现

在下面的示例中,调用了unselect,但未定义公共变量“this.backselect”。如果我将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=新的MyClass(); obj.on();
obj.off()

您没有在上下文中调用
取消选择
,因此
这个
并不是您认为的意思

unselect.apply(this);

您没有在上下文中调用
unselect
,因此
这个
并不是您认为的意思

unselect.apply(this);

我想这是正确的。请参阅“特权”部分以获取参考:谢谢!以前从未见过应用方法@加里-也谢谢你的链接,读得很好。我想这是正确的。请参阅“特权”部分以获取参考:谢谢!以前从未见过应用方法@加里-也谢谢你的链接,很好的阅读。