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

2021-07-24 08:26:00 字數 1636 閱讀 8306

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

//建構函式繼承的特點/缺點 :所有的屬性都是物件獨有,不能共享

//物件屬性可以共性屬性

function animal()

this.name = "動物名";//例項屬性,每個動物都應該不一樣

}//animal的原型屬性

animal.prototype.shake = function()

//貓function cat(color);

this.catchmouse = function()

}//var m1 = new cat("小黃");

//alert(m1.__proto__ === cat.prototype);//true

//讓cat的原型指向乙個aniaml物件,從而所有的cat物件都從原型中獲得了共享的屬性

//cat原型的物件獲取了乙個animal物件的值 可以在不同的cat物件中共享

//new animal()是乙個動物物件,包含物件的例項屬性和原型屬性

cat.prototype= new animal();

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

m1.eat();//m1本身沒有eat 從__proto__中找(cat.prototype)

m1.shake();

var m2 = new cat("小黑");

///通過原型屬性繼承過來的屬性都是共享的,name屬性不應該共享,cat名不一樣

alert(m2.name);

alert(m1.name);

//m1呼叫shake時,m1本身中沒有shake 則會去cat的原型中找

//cat的原型(是乙個animal物件),繼承是通過原型鏈實現的,所有的cat物件共享

console.log(m1);//cat

//物件屬性可以共性屬性

function animal()

this.name = "動物名";//例項屬性,每個動物都應該不一樣

}//animal的原型屬性

animal.prototype.shake = function()

//貓function cat(color);

this.catchmouse = function()

}//var m1 = new cat("小黃");

//alert(m1.__proto__ === cat.prototype);//true

//讓cat的原型指向乙個aniaml物件,從而所有的cat物件都從原型中獲得了共享的屬性

//cat原型的物件獲取了乙個animal物件的值 可以在不同的cat物件中共享

//new animal()是乙個動物物件,包含物件的例項屬性和原型屬性

cat.prototype= new animal();

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

m1.eat();//m1本身沒有eat 從__proto__中找(cat.prototype)

m1.shake();

var m2 = new cat("小黑");

///通過原型屬性繼承過來的屬性都是共享的,name屬性不應該共享,cat名不一樣

alert(m2.name);

alert(m1.name);

面對物件繼承之組合繼承

組合繼承 1.所有不需要共享的例項屬性使用call來繼承 2.所有需要共享的屬性通過原型鏈繼承 把兩者結合到一起成為組合繼承 優點 既可以讓共享的屬性只保留乙份,又可以讓不需要共享的屬性每個物件都有 function animal animal的原型屬性 animal.prototype.shake...

python 面對物件 繼承

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

c 面對物件繼承

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