使用 Javascript 原型,如何从同一实例的另一个 属性 获取实例 属性?

Using Javascript prototype, how to get an instance property from another property of the same instance?

使用 Javascript 原型,如何从同一实例的另一个 属性 获取实例 属性?

我正在尝试从 Main.prototype.b 方法中调用 Main.prototype.a 方法。

我设法通过在 Main.prototype.b 上添加一个 init 方法来解决这个问题,该方法接受一个 instance 变量并将其保存为 this.instance,以后可以用来引用到其他方法中的实例。

然后从 Main 构造函数调用 init 方法,同时将 this 作为变量传递,但我觉得我缺少一个不同的更优雅和简单的解决方案。

这只是我试图理解的一个非常简单的例子:

var Main = function(){}

Main.prototype.a = {
    value: 1,
    one: function(){
        this.value++;
        console.log("added 1", this.value);
    },
    two: function(){
        this.value--;
        console.log("reduced 1", this.value);
    },
    three: function(){
        this.value+=10;
        console.log("added 10", this.value);
    }
}

Main.prototype.b = {
    one: function(){
        //call Main.prototype.a.one
    },
    two: function(){
        //call Main.prototype.a.two
    },
    three: function(){
        //call Main.prototype.a.three
    },
    getValue: function(){
        //return Main.prototype.a.variable
    }
}

var main = new Main();

感谢您花时间阅读并感谢所有提前提供解决方案的人!

简单:

var Main = function(){}

Main.prototype.a = {
    value: 1,
    one: function(){
        this.value++;
        console.log("added 1", this.value);
    },
    two: function(){
        this.value--;
        console.log("reduced 1", this.value);
    },
    three: function(){
        this.value+=10;
        console.log("added 10", this.value);
    }
}

Main.prototype.b = {
    one: function(){
      Main.prototype.a.one();
    },
    two: function(){
        //call Main.prototype.a.two
    },
    three: function(){
        //call Main.prototype.a.three
    },
    getValue: function(){
        //return Main.prototype.a.variable
    }
}

var main = new Main();
main.b.one();
main.b.one();