/*
寄生組合式繼承
這個例子高效率體現它只呼叫了一次supertype建構函式,
並且因此避免了在subtype.prototype上面建立的不必要、多餘的屬性。
與此同時,原型鏈還能保持不變。
這是引用型別最理想的繼承正規化
*/function object(o) //建立乙個臨時性的建構函式
f.prototype = o //將傳入的物件作為這個建構函式的原型
return new f() //返回新例項
}function inheritprototype(subtype, supertype)
function supertype(name)
supertype.prototype.sayname = function ()
function subtype(name, age)
inheritprototype(subtype, supertype); //subtype繼承supertype,這裡主要是繼承它的方法
subtype.prototype.sayage = function ()
var instance = new subtype("張三", 19) //例項中就有了原型鏈中的方法
instance.sayname();
instance.sayage();
組合繼承 最常用
//組合繼承
function supertype(name)
supertype.prototype.sayname = function ()
function subtype(name, age)
subtype.prototype = new supertype();
subtype.prototype.constructor = subtype;
subtype.prototype.sayage = function ()
var instance = new subtype("張三", 19) //例項中就有了原型鏈中的方法
instance.sayname();
instance.sayage();
原型 原型鏈 繼承
原型 是function物件的乙個屬性,它定義了建構函式 製造出的物件 的公共祖先。通過該建構函式產生的物件,可以繼承該原型的屬性和方法。原型也是物件 這定義有點模糊,用 解釋一下 我們在控制台中列印出了這個,首先son物件的建構函式是foo,但是我們的foo中什麼屬性都沒有,怎麼會出現乙個 pro...
原型 原型鏈 繼承
在 js 中,一切皆物件!下面就讓我們從建立物件開始,逐步學習js中的核心知識 原型,原型鏈,繼承等 1.字面量方式建立物件 var obj var obj1 2.使用 new object 的方式建立物件 var obj2 new object obj2.name 張三 obj2.age 13 o...
原型鏈繼承
一 例項化物件 給物件增加屬性和方法 function person name,age person.prototype.sayhi function 任何乙個建構函式都有乙個屬性 prototype 原型 這個原型是乙個物件,這個物件中所有的屬性和方法都可以可以被建構函式建立的例項訪問。二 建構函...