1. 程式人生 > >JavaScript如何優雅實現繼承?

JavaScript如何優雅實現繼承?

一、物件冒充

其原理如下:建構函式使用 this 關鍵字給所有屬性和方法賦值(即採用類宣告的建構函式方式)。因為建構函式只是一個函式,所以可使 Parent 建構函式 成為 Children 的方法,然後呼叫它。Children 就會收到 Parent 的建構函式中定義的屬性和方法。例如,用下面的方式定義 Parent 和 Children:

0be77349d71f11680792124b62afaca8bec7e00f

原理:就是把 Parent 建構函式放到 Children 建構函式裡面執行一次。那為什麼不直接執行,非要轉個彎把 Parent 賦值給 Children 的 method 屬性再執行呢? 這跟 this 的指向有關,在函式內 this 是指向 window 的。當將 Parent 賦值給 Children 的 method 時, this 就指向了 Children 類的例項。

二、原型鏈繼承

眾所周知,JavaScript 是一門基於原型的語言,在 JavaScript 中 prototype 物件的任何屬性和方法都被傳遞給那個類的所有例項。原型鏈利用這種功能來實現繼承機制:

原文連結