JS對(duì)象是否擁有某屬性如何判斷
JS對(duì)象是否擁有某屬性
兩種方式,但稍有區(qū)別
1,in 運(yùn)算符
var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true
可看到無(wú)論是name,還是原形鏈上的toString,都能檢測(cè)到返回true。
2,hasOwnProperty 方法
var obj = {name:'jack'}; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('toString'); // --> false
原型鏈上繼承過(guò)來(lái)的屬性無(wú)法通過(guò)hasOwnProperty檢測(cè)到,返回false。
需注意的是,雖然in能檢測(cè)到原型鏈的屬性,但for in通常卻不行。
當(dāng)然重寫(xiě)原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可見(jiàn)的。見(jiàn):for in的缺陷
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Bootstrap開(kāi)發(fā)實(shí)戰(zhàn)之第一次接觸Bootstrap
Bootstrap開(kāi)發(fā)實(shí)戰(zhàn)之第一次接觸Bootstrap,想要學(xué)好一門(mén)語(yǔ)言,首先應(yīng)該進(jìn)行深入了解,感興趣的小伙伴們可以參考一下2016-06-06JavaScript 存在陷阱 刪除某一區(qū)域所有節(jié)點(diǎn)
實(shí)現(xiàn)功能:刪除某一區(qū)域中所有節(jié)點(diǎn)。2010-05-05JS實(shí)現(xiàn)三個(gè)層重疊點(diǎn)擊互相切換的方法
這篇文章主要介紹了JS實(shí)現(xiàn)三個(gè)層重疊點(diǎn)擊互相切換的方法,涉及JavaScript動(dòng)態(tài)操作頁(yè)面定位屬性的相關(guān)技巧,需要的朋友可以參考下2015-10-10JS實(shí)現(xiàn)數(shù)組去重及數(shù)組內(nèi)對(duì)象去重功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)數(shù)組去重及數(shù)組內(nèi)對(duì)象去重功能,結(jié)合實(shí)例形式分析了ES5與ES6兩種版本針對(duì)數(shù)組去重的相關(guān)操作技巧,需要的朋友可以參考下2019-02-02ES6 Promise對(duì)象概念及用法實(shí)例詳解
這篇文章主要介紹了ES6 Promise對(duì)象概念及用法,結(jié)合實(shí)例形式詳細(xì)分析了ES6中Promise對(duì)象的概念、原理、創(chuàng)建、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10Bootstrap基本樣式學(xué)習(xí)筆記之表單(3)
這篇文章主要介紹了Bootstrap學(xué)習(xí)筆記之表單基本樣式的相關(guān)資料,為大家分享了三種表單樣式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12