0
對不起轉儲問題我是js的新手。我想覆蓋D
「class」中的f2()
函數。但由於某種原因,福克斯福克斯告訴我:「遞歸太多」。你能指點我發生遞歸的地方,以及如何使這段代碼按預期工作?JS繼承例子:遞歸太多
var B = function() {
};
B.prototype.f2 = function (x) {
return 2 * x;
};
var C = function() {
B.call(this);
};
var D = function() {
C.call(this);
};
D.prototype.f2 = function (x) {
return C.prototype.f2.call(this, x) * 7;
};
inherit(B, C);
inherit(C, D);
function inherit(Child, Parent) {
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;
}
var d = new D();
console.log(d.f2(3));
我很好奇,爲什麼你正在學習ES5原型鏈,以便專心(基於這個和至少一個ot她回答你的問題)。上面的'inherit'函數已經過時了。從ES2015開始,這裏有一個簡單明瞭的聲明語法,並且可以爲尚不支持它的較舊環境轉換語法。在這種語法中,它很容易理解。因此,研究這種過時的做法似乎是非最優的。 –
*(不是我的dv ...)* –
非常感謝你,你的回答非常有幫助!我參加了js中關於古典oop模式的培訓,並且我們被要求以ES5和ES2015兩種方式實施它。但我明白你在說什麼,這是有道理的,並讓我的世界更加清晰。 –