gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:22:30 27 4
gpt4 key购买 nike

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

我正在尝试从 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();

关于javascript - 使用Javascript原型(prototype),如何从同一实例的另一个属性获取实例属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com