面對物件繼承之組合繼承

2021-07-24 09:24:02 字數 863 閱讀 1348

組合繼承:

//1.所有不需要共享的例項屬性使用call來繼承

//2.所有需要共享的屬性通過原型鏈繼承

//把兩者結合到一起成為組合繼承

//優點:既可以讓共享的屬性只保留乙份,又可以讓不需要共享的屬性每個物件都有

function animal()

//animal的原型屬性

animal.prototype.shake = function()

function cat(color)

}//步驟2:通過設定cat的原型指向乙個animal物件,讓所有的cat物件繼承animal的屬性

//原型物件是animal型別,所有的cat物件的constructor是animal 不符合邏輯

cat.prototype = new animal();

var m1 = new cat("小紅");

//alert(m1.constructor);//此時列印的是animal函式 不符合邏輯

//alert(m1.constructor == cat);//false,錯誤 通過構造器判斷型別錯誤!

//解決辦法,修改cat的原型中的contructor屬性為cat

cat.prototype.contructor = cat;

alert(m1.contructor === cat);//true 修正構造器屬性

m1.shake();//搖一搖

//總結:組合繼承關鍵**

//1.使用call繼承父類的例項屬性 在子類中animal.call(this)

= new animal()

//3.修正了子類的構造器,cat.prototype.constructor = cat

面對物件繼承之原型鏈繼承

面對物件繼承之原型鏈繼承 建構函式繼承的特點 缺點 所有的屬性都是物件獨有,不能共享 物件屬性可以共性屬性 function animal this.name 動物名 例項屬性,每個動物都應該不一樣 animal的原型屬性 animal.prototype.shake function 貓funct...

python 面對物件 繼承

私有屬性和方法通過在屬性和方法名前新增 得到。私有屬性和方法是物件的隱私,不能通過外界和子類直接訪問 在外界無法訪問到私有屬性和方法 不能直接print列印 可以通過在物件的方法內部訪問私有屬性 子類物件可以通過父類的公有方法間接訪問到私有屬性或私有方法 eg classa def init sel...

c 面對物件繼承

可以認為類是屬於命名空間的 如果在當前專案中沒有這個類的命名空間,我們需要手動匯入這個類所在的命名空間 alt shift f10 快捷鍵 在乙個專案中引用另乙個專案的類 1.新增引用 2.引用命名空間 區別 1.值型別和引用型別在記憶體上儲存的地方不一樣。2.在傳遞值型別和傳遞引用型別的時候,傳遞...