JavaScript對象繼承方式

1、對象冒充前端

其原理以下:構造函數使用 this 關鍵字給全部屬性和方法賦值(即採用類聲明的構造函數方式)。由於構造函數只是一個函數,因此可以使 Parent 構造函數 成爲 Children 的方法,而後調用它。Children 就會收到 Parent 的構造函數中定義的屬性和方法。例如,用下面的方式定義 Parent 和 Children:函數

]// 父類構造函數 var Parent = function(name){ this.name = name; this.sayHi = function(){ console.log("Hi! " + this.name + "."); }//前端全棧學習交流圈:866109386 };//面向1-3年前端人員 //幫助突破技術瓶頸,提高思惟能力 // 子類構造函數 var Children = function(name){ this.method = Parent; this.method(name); // 實現繼承的關鍵 delete this.method; this.getName = function(){ console.log(this.name); } }; var p = new Parent("john"); var c = new Children("joe"); p.sayHi(); // 輸出: Hi! john. c.sayHi(); // 輸出: Hi! joe. c.getName(); // 輸出: jo

原理:就是把 Parent 構造函數放到 Children 構造函數裏面執行一次。那爲何不直接執行,非要轉個彎把 Parent 賦值給 Children 的 method 屬性再執行呢? 這跟 this 的指向有關,在函數內 this 是指向 window 的。當將 Parent 賦值給 Children 的 method 時, this 就指向了 Children 類的實例。學習

2、原型鏈繼承this

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

相關文章
相關標籤/搜索