首頁 >web前端 >js教程 >JavaScript isPrototypeOf和hasOwnProperty使用差異(實用)

JavaScript isPrototypeOf和hasOwnProperty使用差異(實用)

亚连
亚连原創
2018-05-21 15:02:491621瀏覽

JavaScript isPrototypeOf和hasOwnProperty的使用技巧,需要的朋友的朋友可以參考下。

1、isPrototypeOf
isPrototypeOf是用來判斷指定物件object1是否存在於另一個物件object2的原型鏈中,是則傳回true,否則傳回false。
格式如下:
object1.isPrototypeOf(object2);
object1是一個物件的實例;
object2 是另一個將要檢查其原型鏈的物件。
原型鏈可以用來在同一個物件類型的不同實例之間共享功能。
如果 object2 的原型鏈中包含object1,那麼 isPrototypeOf 方法傳回 true。
如果 object2 不是一個物件或 object1 沒有出現在 object2 中的原型鏈中,isPrototypeOf 方法將傳回 false。
使用舉例如下:

var re = /^\s*/;
// 這裡定義一個正規表示式物件
// 這裡檢查RegExp是不是re的原形鏈對象,傳回true
var bIsptt = RegExp.prototype.isPrototypeOf(re);

2、hasOwnProperty hasOwnProperty判斷物件是否有名稱的屬性或對象,此方法無法檢查該物件的原型鏈中是否具有該屬性,該屬性必須是物件本身的成員。
如果該屬性或方法是該物件本身定義的而不是器原型鏈中定義的則回傳true;否則回傳false;
格式如下:
object.hasOwnProperty(proName);
判斷proName的名稱是不是object物件的一個屬性或物件。使用舉例如下:

// 得到false, 因為無法偵測原型鏈中的屬性
var bStr = "Test String".hasOwnProperty("split");
// String物件的原型上本來就有這個屬性,自然回傳true
var bStr1 = String.prototype.hasOwnProperty("split");
// 回傳true,因為不是偵測原型中的屬性
var bObj = ({ fnTest:function(){}}).hasOwnProperty("fnTest");

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的區別與應用場景(實用技巧)

全面分析JavaScript物件導向概念中的Object型別與作用域(附有範例)

#重點解說在JavaScript中的__proto__屬性(圖文教程)

以上是JavaScript isPrototypeOf和hasOwnProperty使用差異(實用)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn