JS 真·原型繼承

以前在學習「JavaScript 原型繼承」的時候,在網上搜了一堆,發現都不是我想要的結果,就想起來我以前在一本書上看到的原型繼承方法。(書名:《JavaScript 忍者祕籍(第二版)》,做者:John Resig, Bear Bibeault, Josip Maras)html

原型繼承須要兩步:
第一步是把子類的原型設置爲父類的實例。可是這樣一來子類實例的 constructor 就指向父類了,因此須要手動修復一會兒類的 constructor。
因而就有了第二步:經過 Object.defineProperty 方法來把子類的 constructor 修正爲子類。學習

如下是根據書中內容本身寫的:prototype

function Person() {}
function Ninja() {}

Ninja.prototype = new Person()
Object.defineProperty(Ninja.prototype, 'constructor', {
    enumerable: false,
    value: Ninja,
    writable: true
})

let ninja = new Ninja()
相關文章
相關標籤/搜索