欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript 原型繼承

 更新時(shí)間:2011年12月26日 23:09:09   作者:  
JavaScript 原型繼承,學(xué)習(xí)js面向?qū)ο蟮呐笥芽梢钥纯础?/div>
Object.prototype
JavaScript是基于原型繼承的,任何對(duì)象都有一個(gè)prototype屬性。Object.prototype是所有對(duì)象的根,并且不可改變。
復(fù)制代碼 代碼如下:

Object.prototype=null;
alert(Object.prototype);//[object Object]

Object與Object.prototype
Object繼承于Object.prototype,增加一個(gè)屬性給Object.prototype上,同時(shí)也會(huì)反應(yīng)到Object上。如:
復(fù)制代碼 代碼如下:

Object.prototype.nameStr="Object Prototype";
Object.prototype.getName=function(){return this.nameStr};
alert(Object.getName());//Object Prototype

Function.prototype與Object.prototype
由于Object.prototype是萬(wàn)物之根,所以Function.prototype也同時(shí)會(huì)繼承Object.prototype的所有屬性。如:
復(fù)制代碼 代碼如下:

Object.prototype.nameStr="Object Prototype";
Object.prototype.getName=function(){return this.nameStr};
alert(Function.prototype.getName());//Object Prototype


Object/Function/String/Number/Boolean/Array與Date
Object/Function/String/Number/Boolean/Array與Date都是函數(shù),函數(shù)又繼承于Function.prototype, 所以更改Function.prototype一樣會(huì)影響到Object/Function/String/Number/Boolean/Array與Date。如:
復(fù)制代碼 代碼如下:

Function.prototype.initType='Function Type';
Function.prototype.getType=function(){return this.initType};
//alert(Object.getType());//Function Type
//alert(Date.getType());//Function Type
//alert(Number.getType());//Function Type
//alert(String.getType());//Function Type
//alert(Boolean.getType());//Function Type
alert(Array.getType());//Function Type

同樣Function.prototype也會(huì)把所受Object.prototype的影響,傳遞給它的下一層級(jí)。如:
復(fù)制代碼 代碼如下:

Object.prototype.nameStr="Object Prototype";
Object.prototype.getName=function(){return this.nameStr};
alert(Function.prototype.getName());//Object Prototype
alert(Array.getName());//Object Prototype

復(fù)制代碼 代碼如下:

alert(Boolean.prototype.getName());//Object Prototype

Array/Array.prototype與Function.prototype/Object.prototype

Array是函數(shù)對(duì)象,受Function.prototype的影響,而Array.prototype不是函數(shù)對(duì)象,所不受Function.prototype的影響,但所有對(duì)象受Object.prototype的影響,所以Array.prototype也會(huì)受Object.prototype的影響。如:
復(fù)制代碼 代碼如下:

Object.prototype.nameStr="Object Prototype";
Object.prototype.getName=function(){return this.nameStr};
//alert(Function.prototype.getName());//Object Prototype
//alert(Boolean.prototype.getName());//Object Prototype
Function.prototype.initFun=function(){
return 'Function.prototype.initFun';
}
alert(Array.initFun());//Function.prototype.initFun
var arr=['a','b'];
alert(arr.getName());//Object Prototype
alert(arr.initFun());//Error: arr.initFun is not a function
alert(arr.initFun);//undefined

相關(guān)文章

最新評(píng)論