使用Javascript原型,如何从同一实例的另一个属性获取实例属性?
我正在尝试从Main.prototype.a
方法中调用Main.prototype.b
方法。
我设法通过在init
上添加Main.prototype.b
方法来解决此问题,该方法接受一个instance
变量并将其保存为this.instance
,以后可以用来引用该变量。其他方法中的实例。
然后在传递init
作为变量的同时,从Main
构造函数调用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();
感谢您抽出宝贵时间阅读所有提前提供解决方案的人员!
答案 0 :(得分:1)
简单地:
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();