成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

細(xì)說(shuō) Javascript 對(duì)象篇(三) : hasOwnProperty

elva / 1341人閱讀

摘要:方法是中唯一一個(gè)處理對(duì)象屬性而不會(huì)往上遍歷原型鏈的。在這里,只有能給出正確答案,這在遍歷一個(gè)對(duì)象的屬性時(shí)是非常必要的。這里還要提醒下,當(dāng)我們使用來(lái)遍歷對(duì)象時(shí),使用將會(huì)很好地避免來(lái)自原型對(duì)象擴(kuò)展所帶來(lái)的困擾。

判斷一個(gè)屬性是定義在對(duì)象本身而不是繼承自原型鏈,我們需要使用從 Object.prototype 繼承而來(lái)的 hasOwnProperty 方法。
hasOwnProperty 方法是 Javascript 中唯一一個(gè)處理對(duì)象屬性而不會(huì)往上遍歷原型鏈的。

// Poisoning Object.prototype
Object.prototype.bar = 1;
var foo = {goo: undefined};

foo.bar; // 1
"bar" in foo; // true

foo.hasOwnProperty("bar"); // false
foo.hasOwnProperty("goo"); // true

在這里,只有 hasOwnProperty 能給出正確答案,這在遍歷一個(gè)對(duì)象的屬性時(shí)是非常必要的。Javascript 中沒(méi)有其他方法能判斷一個(gè)屬性是定義在對(duì)象本身還是繼承自原型鏈。

hasOwnProperty 作為屬性

Javascript 并未將 hasOwnProperty 設(shè)為敏感詞,這意味著你可以擁有一個(gè)命名為 hasOwnProperty 的屬性。這個(gè)時(shí)候你無(wú)法再使用本身的 hasOwnProperty 方法來(lái)判斷屬性,所以你需要使用外部的 hasOwnProperty 方法來(lái)進(jìn)行判斷。

var foo = {
    hasOwnProperty: function() {
        return false;
    },
    bar: "Here be dragons"
};

foo.hasOwnProperty("bar"); // always returns false

// Use another Object"s hasOwnProperty and call it with "this" set to foo
({}).hasOwnProperty.call(foo, "bar"); // true

// It"s also possible to use hasOwnProperty from the Object
// prototype for this purpose
Object.prototype.hasOwnProperty.call(foo, "bar"); // true
總結(jié)

當(dāng)判斷對(duì)象屬性存在時(shí),hasOwnProperty 是唯一可以依賴(lài)的方法。這里還要提醒下,當(dāng)我們使用 for in loop 來(lái)遍歷對(duì)象時(shí),使用 hasOwnProperty 將會(huì)很好地避免來(lái)自原型對(duì)象擴(kuò)展所帶來(lái)的困擾。

參考

http://bonsaiden.github.io/JavaScript-Garden/#object.hasownproperty

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/78051.html

相關(guān)文章

  • 細(xì)說(shuō) Javascript 對(duì)象(四) : for in 循環(huán)

    摘要:第二是,由于會(huì)遍歷整個(gè)原型鏈,所以當(dāng)原型鏈過(guò)長(zhǎng)時(shí),會(huì)對(duì)性能造成影響??偨Y(jié)建議養(yǎng)成過(guò)濾屬性的好習(xí)慣,不要對(duì)運(yùn)行環(huán)境做任何假設(shè),也無(wú)論原生的原型對(duì)象是否被擴(kuò)展。 如同 in 運(yùn)算符一樣,使用 for in 循環(huán)遍歷對(duì)象屬性時(shí),也將往上遍歷整個(gè)原型鏈。 // Poisoning Object.prototype Object.prototype.bar = 1; var foo = {m...

    Kross 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱(chēng)為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評(píng)論0 收藏0
  • 細(xì)說(shuō) Javascript 對(duì)象(一) : 對(duì)象的使用和屬性

    摘要:中的一切都可以視為對(duì)象,除了兩個(gè)特例和。上例中的第三個(gè)情形已說(shuō)明刪除對(duì)象的屬性刪除屬性的唯一方法是使用,將屬性值設(shè)置為或只是移除了與屬性相關(guān)的值,并沒(méi)有真正刪除屬性本身。命名對(duì)象的屬性對(duì)象的屬性可以用普通字符或字符串來(lái)命名。 Javascript 中的一切都可以視為對(duì)象,除了兩個(gè)特例:null 和 undefined。 false.toString(); // false [1, 2...

    codecook 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<