JavaScript檢測(cè)實(shí)例屬性, 原型屬性
0.前提
JavaScript對(duì)象的屬性分為兩種存在形態(tài). 一種是存在實(shí)例中, 另一是存在原型對(duì)象中.
根據(jù)上述, 檢測(cè)屬性的時(shí)候會(huì)出現(xiàn)4種情況
既不存在實(shí)例中, 也不存在原型對(duì)象中
存在實(shí)例中, 不存在原型對(duì)象中
不存在實(shí)例中, 存在原型對(duì)象中
既存在實(shí)例中, 也存在原型對(duì)象中
1.hasOwnPrototype()
hasOwnPrototype()接受一個(gè)字符串格式的屬性名稱(chēng), 如果實(shí)例本身存在該屬性(情況2/情況4), 返回true. 否則, 返回false(情況1/情況3).
functino Person() {}
Person.prototype.name = 'apple';
var person1 = new Person();
var person2 = new Person();
person1.name = 'banana';
console.log(person1.hasOwnPrototype(name)); //true
console.log(person2.hasOwnPrototype(name)); //false
2.in操作符
in操作符無(wú)論屬性是存在實(shí)例本身中, 還是原型對(duì)象中, 就會(huì)返回true(情況2/情況3/情況4); 否則, 返回false(情況1).
console.log('name' in person1); //true
console.log('name' in person2); //true
3.檢測(cè)存在原型的屬性
結(jié)合in操作符和hasOwnProperty()就可以自定義函數(shù)來(lái)檢測(cè)原型中是否存在給定的屬性.
function hasPrototypeProperty(object, name) {
return !object.hasOwnPrototype(name) && (name in object);
}
console.log(hasPrototypeProperty(person1, 'name')); //false
console.log(hasPrototypeProperty(person2, 'name')); //true
原型中存在給定屬性, 返回true(情況3). 否則返回false(情況1/情況2/情況4).
以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡
相關(guān)文章
微信小程序?qū)崿F(xiàn)比較功能的方法匯總(五種方法)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)比較功能的方法,本文給大家列舉出五種方式,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03html dom節(jié)點(diǎn)操作(獲取/修改/添加或刪除)
DOM 是關(guān)于如何獲取、修改、添加或刪除 HTML 元素的標(biāo)準(zhǔn),下面為大家介紹下html dom節(jié)點(diǎn)操作,感興趣的朋友可以參考下2014-01-01關(guān)于foreach循環(huán)中遇到的問(wèn)題小結(jié)
這篇文章主要介紹了關(guān)于foreach循環(huán)中遇到的問(wèn)題總結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05JavaScript實(shí)現(xiàn)拼圖式滑塊驗(yàn)證功能
滑塊驗(yàn)證碼是在網(wǎng)站、APP等應(yīng)用中常見(jiàn)的一種驗(yàn)證方式,通過(guò)按照一定規(guī)則滑動(dòng)滑塊到指定位置完成驗(yàn)證,才可以進(jìn)行下一步操作,本文給大家分享基于JavaScript實(shí)現(xiàn)拼圖式滑塊驗(yàn)證功能,感興趣的朋友一起看看吧2022-06-06JavaScript使用indexOf獲得子字符串在字符串中位置的方法
這篇文章主要介紹了JavaScript使用indexOf獲得子字符串在字符串中位置的方法,涉及javascript中indexOf方法操作字符串的技巧,需要的朋友可以參考下2015-04-04JavaScript JSON使用原理及注意事項(xiàng)
這篇文章主要介紹了JavaScript JSON使用原理及注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07