国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于javascript的Object. hasOwnProperty,看我就夠了

mtunique / 2270人閱讀

摘要:基本概念方法會返回一個布爾值,指示對象自身屬性中非繼承屬性是否具有指定的屬性,如果具有帶指定名稱的屬性,則方法返回,否則返回。此方法不會檢查對象原型鏈中的屬性該屬性必須是對象本身的一個成員。使用語法參數(shù),必需。

hasOwnProperty基本概念
hasOwnProperty() 方法會返回一個布爾值,指示對象自身屬性中(非繼承屬性)是否具有指定的屬性,
如果 object 具有帶指定名稱的屬性,則 hasOwnProperty 方法返回 true,否則返回 false。此方法不會檢查對象原型鏈中的屬性;該屬性必須是對象本身的一個成員。
使用語法
obj.hasOwnProperty(prop)
參數(shù)

obj,必需。對象的實(shí)例。
prop,必需。一個屬性名稱的字符串值。

demo 判斷自身屬性是否存在
//實(shí)例化一個對象
const obj = new Object();
//為obj添加屬性name
obj.name = "陌上寒";
//為obj添加屬性sex
obj.sex="male"

const a = obj.hasOwnProperty("name");
console.log(a);// true
//刪除obj的name屬性
delete obj.name
const b = obj.hasOwnProperty("name");
console.log(b); // false
const c = obj.hasOwnProperty("sex");
console.log(c); //  true
無法通過obj.hasOwnProperty(prop)判斷繼承屬性
obj= new Object();
obj.name = "陌上寒";
const a = obj.hasOwnProperty("name");
console.log(a);//true
const b = obj.hasOwnProperty("toString");
console.log(b);//false
const c = obj.hasOwnProperty("hasOwnProperty");
console.log(c);//false
如果要判斷繼承屬性,通過原型鏈prototype判斷
const d = Object.prototype.hasOwnProperty("toString")
console.log(d);//true
const e = String.prototype.hasOwnProperty("split")
console.log(e);//true
遍歷一個對象的所有自身屬性

通過for...in循環(huán)對象的所有枚舉屬性,然后再使用hasOwnProperty()方法來忽略繼承屬性。
換一種寫法

const obj?={
    name:"陌上寒",
    sex:"male"
}
for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(`${key}: ${obj[key]}`)
    }
    else 
        console.log(key); 
    }
}

輸出

JavaScript 并沒有保護(hù) hasOwnProperty 屬性名,使用起來可能會有坑
const foo = {
    hasOwnProperty: function() {
        return false;
    },
    bar: "這是一個坑,可能永遠(yuǎn)返回false"
};
const hasBar = foo.hasOwnProperty("bar"); 
console.log(hasBar);// 始終返回 false

// 如果擔(dān)心這種情況,可以直接使用原型鏈上真正的 hasOwnProperty 方法
const a = ({}).hasOwnProperty.call(foo, "bar"); // true
console.log(a);
// 也可以使用 Object 原型上的 hasOwnProperty 屬性
const b = Object.prototype.hasOwnProperty.call(foo, "bar"); // true
console.log(b);

原文地址
參考鏈接:
Object.prototype.hasOwnProperty()")
hasOwnProperty 方法 (Object) (JavaScript).aspx "hasOwnProperty 方法 (Object) (JavaScript)")
js屬性對象的hasOwnProperty方法

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98910.html

相關(guān)文章

  • 關(guān)于javascript原型和原型鏈,看我夠了(一)

    摘要:要用作原型的對象。函數(shù)對象可以創(chuàng)建普通對象,這個我們上面講過了回顧一下這是一個自定義構(gòu)造函數(shù)普通對象沒法創(chuàng)建函數(shù)對象,凡是通過創(chuàng)建的對象都是函數(shù)對象,其他都是普通對象通常通過創(chuàng)建,可以通過來判斷。 關(guān)于js的原型和原型鏈,有人覺得這是很頭疼的一塊知識點(diǎn),其實(shí)不然,它很基礎(chǔ),不信,往下看要了解原型和原型鏈,我們得先從對象說起 創(chuàng)建對象 創(chuàng)建對象的三種方式: 對象直接量 通過對象直接量創(chuàng)建...

    MoAir 評論0 收藏0
  • 關(guān)于javascript原型和原型鏈,看我夠了(二)

    摘要:原文鏈接關(guān)于的原型和原型鏈,看我就夠了一參考鏈接闖關(guān)記之原型及原型鏈之原型與原型鏈一篇文章帶你理解原型和原型鏈徹底理解原型鏈一的默認(rèn)指向圖解和的三角關(guān)系原型和原型鏈三張圖搞懂的原型對象與原型鏈 溫故 創(chuàng)建對象的三種方式 通過對象直接量 通過new創(chuàng)建對象 通過Object.create() js中對象分為兩種 函數(shù)對象 普通對象 仔細(xì)觀察如下代碼 function Foo(na...

    eccozhou 評論0 收藏0
  • 關(guān)于javascript原型和原型鏈,看我夠了(三)

    摘要:對于中的引用類型而言,是保存著它們所有實(shí)例方法的真正所在。高級程序設(shè)計(jì)構(gòu)造函數(shù)陌上寒原型對象有一個屬性,指向該原型對象對應(yīng)的構(gòu)造函數(shù)為什么有屬性那是因?yàn)槭堑膶?shí)例。 溫故 我們先回顧一下前兩天討論的內(nèi)容 創(chuàng)建對象的三種方式 通過對象直接量 通過new創(chuàng)建對象 通過Object.create() js中對象分為兩種 函數(shù)對象 普通對象 原型對象prototype 每一個函數(shù)對象都...

    joyvw 評論0 收藏0
  • 深入理解JavaScript,這一篇夠了

    摘要:也就是說,所有的函數(shù)和構(gòu)造函數(shù)都是由生成,包括本身。如果只考慮構(gòu)造函數(shù)和及其關(guān)聯(lián)的原型對象,在不解決懸念的情況下,圖形是這樣的可以看到,每一個構(gòu)造函數(shù)和它關(guān)聯(lián)的原型對象構(gòu)成一個環(huán),而且每一個構(gòu)造函數(shù)的屬性無所指。 前言  JavaScript 是我接觸到的第二門編程語言,第一門是 C 語言。然后才是 C++、Java 還有其它一些什么。所以我對 JavaScript 是非常有感情的,畢...

    villainhr 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<