我的目標是性能從其它函數的原型添加到主要功能(這)方面Submain如何在原型中使用call()?
function Main() {
Submain.call(this);
//from here I want to be able to use this.a, this.b, this.c, this.d
//...Main code...
}
function Submain() {
//this works fine
this.a = 1;
this.b = 2;
//this does not work because of the context
this.doThis();
}
Submain.prototype.doThis = function() {
this.c = 3;
this.d = 4;
}
那麼,如何使用Submain原型用於此目的?
我明白你的意思了。我不知道你希望得到什麼樣的解決方案。您提供的對象沒有該方法。你可以手動把它放在'Main'或'Main.prototype'裏面,但這看起來不太好。您是否有特殊原因以這種方式安排您的代碼? – 2017-01-23 23:51:18
您可以添加doThing方法而不是使用原型。但是一個不好的選擇(對很多對象的性能影響)。 更好的選擇可以從Submain原型 [見這裏](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)複製主原型,以更好地理解原型設計鏈的工作原理 – allevo
事實上,我的主要原型是巨大的,所以我想將它切成幾個文件以更加模塊化。我可以使用sub = new Submain()然後使用sub.c,sub.d,但我問自己是否有其他解決方案。 – zbeyens