91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js如何實現寄生組合繼承

發布時間:2022-03-31 11:20:48 來源:億速云 閱讀:231 作者:小新 欄目:開發技術

小編給大家分享一下js如何實現寄生組合繼承,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

父類代碼如下:

// 定義一個動物類
function Animal (name) {
  // 屬性
  this.name = name || 'Animal';
  // 實例方法
  this.sleep = function(){
    console.log(this.name + '正在睡覺!');
  }
}
// 原型方法
Animal.prototype.eat = function(food) {
  console.log(this.name + '正在吃:' + food);
};

寄生組合繼承

核心:通過寄生方式,砍掉父類的實例屬性,這樣,在調用兩次父類的構造的時候,就不會初始化兩次實例方法/屬性,避免的組合繼承的缺點

function Cat(name){
  Animal.call(this);
  this.name = name || 'Tom';
}
(function(){
  // 創建一個沒有實例方法的類
  var Super = function(){};
  Super.prototype = Animal.prototype;
  //將實例作為子類的原型
  Cat.prototype = new Super();
})();

// Test Code
var cat = new Cat();
console.log(cat.name);
console.log(cat.sleep());
console.log(cat instanceof Animal); // true
console.log(cat instanceof Cat); //true
Cat.prototype.constructor = Cat; // 需要修復下構造函數

特點:

  • 堪稱完美

缺點:

  • 實現較為復雜

以上是“js如何實現寄生組合繼承”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

甘孜| 台中县| 永州市| 松溪县| 湘乡市| 盈江县| 加查县| 合山市| 昌乐县| 庆云县| 大姚县| 临汾市| 黎城县| 镇平县| 佛学| 五大连池市| 米林县| 松江区| 黄石市| 剑河县| 清镇市| 苗栗市| 元朗区| 凉城县| 鲜城| 台南市| 定兴县| 卓尼县| 从江县| 封丘县| 汾西县| 静宁县| 济阳县| 台湾省| 杭州市| 前郭尔| 长垣县| 富蕴县| 大安市| 连南| 额济纳旗|