|
isPrototypeOf是用來(lái)判斷指定對(duì)象object1是否存在于另一個(gè)對(duì)象object2的原型鏈中,是則返回true,否則返回false。
格式如下:
object1.isPrototypeOf(object2);
object1是一個(gè)對(duì)象的實(shí)例;
object2是另一個(gè)將要檢查其原型鏈的對(duì)象。
原型鏈可以用來(lái)在同一個(gè)對(duì)象類(lèi)型的不同實(shí)例之間共享功能。
如果 object2 的原型鏈中包含object1,那么 isPrototypeOf 方法返回 true。
如果 object2 不是一個(gè)對(duì)象或者 object1 沒(méi)有出現(xiàn)在 object2 中的原型鏈中,isPrototypeOf 方法將返回 false。
使用舉例如下:
復(fù)制代碼 代碼如下:
var re = /^/s*/;
// 這里定義一個(gè)正則表達(dá)式對(duì)象
// 這里檢查RegExp是不是re的原形鏈對(duì)象,返回true
var bIsptt = RegExp.prototype.isPrototypeOf(re);
2、hasOwnProperty
hasOwnProperty判斷一個(gè)對(duì)象是否有名稱(chēng)的屬性或?qū)ο?,此方法無(wú)法檢查該對(duì)象的原型鏈中是否具有該屬性,該屬性必須是對(duì)象本身的一個(gè)成員。
如果該屬性或者方法是該 對(duì)象自身定義的而不是器原型鏈中定義的 則返回true;否則返回false;
格式如下:
object.hasOwnProperty(proName);
判斷proName的名稱(chēng)是不是object對(duì)象的一個(gè)屬性或?qū)ο?。使用舉例如下:
復(fù)制代碼 代碼如下:
// 得到false, 因?yàn)椴荒軝z測(cè)原型鏈中的屬性
var bStr = "Test String".hasOwnProperty("split");
// String對(duì)象的原型上本來(lái)就有這個(gè)屬性,自然返回true
var bStr1 = String.prototype.hasOwnProperty("split");
// 返回true,因?yàn)椴皇菣z測(cè)原型中的屬性
var bObj = ({fnTest:function(){}}).hasOwnProperty("fnTest");
JavaScript技術(shù):JavaScript isPrototypeOf和hasOwnProperty使用區(qū)別,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。