function inherit(target, origin)
f.prototype = origin.prototype;
target.prototype = new f();
target.prototype.constructor = target;
}
下面還有另一種寫法var inherit = (function();
return function(target, origin)
} () );
讓我們來看一張,來了解其原理
讓我們來了解一下物件的建立過程和原型:
首先,什麼是原型?
原型是function物件的乙個屬性。它定義了建構函式製造出的物件的公共祖先。通過該建構函式產生的物件,可以繼承該原型的屬性和方法。
constructor、prototype和__proto__
constructor屬性:物件上的屬性,這個屬性對應建立所有指向該原型的例項的建構函式
prototype屬性:函式上的屬性,可以說只有函式才具有的屬性。代表的是原型
__proto__屬性:物件上的屬性,無論是函式物件還是其他物件。指向的是它的原型
js原型繼承,聖杯模式繼承
1.call 可以呼叫函式 2.call 可以修改this指向,使用call 的時候,第乙個引數是修改後的this指向,引數2,引數3 使用逗號隔開 function fun x,y var obj call 可以呼叫函式 fun.call call 可以改變這個函式的this指向 此時這個函式的t...
JS 聖杯模式(原型鏈繼承)
聖杯模式 為了son繼承father原型上的東西,還可以修改自己原型上的東西,對father原型不影響。function inherit target,origin 函式f作為乙個中間層,上連father,下連son,使兩函式互不干擾 f.prototype origin.prototype tar...
JS中的繼承,重點 聖杯模式
1.原型鏈的繼承 grand.prototype.lastname ji function grand var grand new grand father.prototype grand function father var father new father son.prototype fat...