有繼承最流行的JavaScript方法:的JavaScript通過繼承原型
function extend(Child, Parent) {
var F = function() { }
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.superclass = Parent.prototype;
}
我學JS了,但我有很多的Java經驗,這種繼承模式似乎有些diffucult我。爲什麼我不能做以下事情:我認爲我不知道/理解一些事情,但F對象在我看來是無用的。請澄清情況。謝謝。
在你的第二個例子,'Child.prototype === Parent.prototype'這將意味着到'Child.prototype'任何改變也會改變'Parent.prototype',因爲他們會在同一個參照同目的。 – zzzzBov
最好避免試圖從Java繼承的角度考慮JavaScript繼承。這兩種架構**非常**不同。 – Pointy
對於現代瀏覽器,您可以使用Object.create來設置繼承。我試圖在這個答案中描述原型,繼承,覆蓋和調用超級:http://stackoverflow.com/a/16063711/1641941瞭解「this」引用的內容也許很有用:http:// stackoverflow.com/a/19068438/1641941 – HMR