JavaScript isPrototypeOf和hasOwnProperty使用區別_js物件導向

來源:互聯網
上載者:User
1、isPrototypeOf
isPrototypeOf是用來判斷指定對象object1是否存在於另一個對象object2的原型鏈中,是則返回true,否則返回false。
格式如下:
object1.isPrototypeOf(object2);
object1是一個對象的執行個體;
object2是另一個將要檢查其原型鏈的對象。
原型鏈可以用來在同一個物件類型的不同執行個體之間共用功能。
如果 object2 的原型鏈中包含object1,那麼 isPrototypeOf 方法返回 true。
如果 object2 不是一個對象或者 object1 沒有出現在 object2 中的原型鏈中,isPrototypeOf 方法將返回 false。
使用舉例如下:
複製代碼 代碼如下:

var re = /^\s*/;
// 這裡定義一個Regex對象
// 這裡檢查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");
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.