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

資訊專欄INFORMATION COLUMN

細(xì)節(jié):js 原型對(duì)象與for-in 方法枚舉的問題

mumumu / 495人閱讀

摘要:原型對(duì)象與方法枚舉的問題原型屬性的屬性與的枚舉問題有的時(shí)候設(shè)置成時(shí)仍然會(huì)被方法枚舉到。新建立的原型對(duì)象的屬性,也是按照規(guī)則返回結(jié)果。最后,再重申一遍,如果原型對(duì)象合實(shí)例存在同名屬性,無論如何都會(huì)被枚舉。

js 原型對(duì)象與for-in 方法枚舉的問題 原型屬性的[[enumerable]]屬性與for-in 的枚舉問題

有的時(shí)候[[enumerable]]設(shè)置成false 時(shí)仍然會(huì)被for-in 方法枚舉到。詳細(xì)情況如下:

function Person(){};

Person.prototype = {
    constructor: Person,
    name: "Oliver"
};
        
var person1 = new Person();
        
Object.defineProperty(person1,"name",{
enumerable: true
})

for (var x in person1){
    console.log(x);
}                                    

這里原型對(duì)象存在name 屬性,person1 的name 屬性enumerable 為true,可以枚舉。

function Person(){};

Person.prototype = {
    constructor: Person,
    name: "Oliver"
};
        
var person1 = new Person();
        
Object.defineProperty(person1,"name",{
    enumerable: false
})

for (var x in person1){
    console.log(x);
}

這里原型對(duì)象存在name 屬性,person1 的name 屬性enumerable 為false,也可以枚舉。

function Person(){};

Person.prototype = {
    constructor: Person,
};
        
var person1 = new Person();
        
Object.defineProperty(person1,"name",{
    enumerable: true
})

for (var x in person1){
    console.log(x);
}

這里原型對(duì)象不存在name 屬性,person1 的name 屬性enumerable 為true,可以枚舉。

function Person(){};

Person.prototype = {
    constructor: Person,
};
        
var person1 = new Person();
        
Object.defineProperty(person1,"name",{
    enumerable: false
})

for (var x in person1){
    console.log(x);
}

這里原型對(duì)象不存在name 屬性,person1 的name 屬性enumerable 為false,不可枚舉。

綜上所述,原型對(duì)象和實(shí)例如果都存在同名屬性,則無論實(shí)例中該屬性的[[enumerable]]是true 還是false 都可以被for-in 枚舉。

另一方面:

function Person(){};

Person.prototype = {
    constructor: Person,
    name: "Oliver"
};
        
var person1 = new Person();
        
Object.defineProperty(Person.prototype,"name",{
    enumerable: true
})

for (var x in Person.prototype){
    console.log(x);
}

原型對(duì)象的屬性如果被修改了[[enumerable]],則按照規(guī)則返回結(jié)果。

function Person(){};

Person.prototype = {
    constructor: Person,
};
        
var person1 = new Person();
        
Object.defineProperty(Person.prototype,"name",{
    enumerable: false
})

for (var x in Person.prototype){
    console.log(x);
}

新建立的原型對(duì)象的屬性[[enumerable]],也是按照規(guī)則返回結(jié)果。

最后,再重申一遍,如果原型對(duì)象合實(shí)例存在同名屬性,無論如何都會(huì)被for-in 枚舉。

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

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

相關(guān)文章

  • JS高程讀書筆記--第六章原型繼承

    摘要:高程讀書筆記第六章理解對(duì)象創(chuàng)建自定義對(duì)象的方式有創(chuàng)建一個(gè)實(shí)例,然后為它添加屬性和方法。創(chuàng)建了自定義的構(gòu)造函數(shù)之后,其原型對(duì)象默認(rèn)只會(huì)取得屬性至于其他方法都是從繼承而來的。 JS高程讀書筆記--第六章 理解對(duì)象 創(chuàng)建自定義對(duì)象的方式有創(chuàng)建一個(gè)Object實(shí)例,然后為它添加屬性和方法。還可用創(chuàng)建對(duì)象字面量的方式 屬性類型 ECMAScript在定義只有內(nèi)部采用的特性時(shí),描述了屬性的各種特征...

    EasonTyler 評(píng)論0 收藏0
  • JS基礎(chǔ)05「對(duì)象

    摘要:對(duì)象是的數(shù)據(jù)類型。對(duì)象是動(dòng)態(tài)的,可以隨時(shí)新增和刪除自有屬性。客戶端中表示網(wǎng)頁結(jié)構(gòu)的對(duì)象均是宿主對(duì)象。提供第二個(gè)可選參數(shù),用以對(duì)對(duì)象的屬性進(jìn)行進(jìn)一步描述。沒有原型的對(duì)象為數(shù)不多,就是其中之一。運(yùn)算符的左側(cè)是屬性名字符串,右側(cè)是對(duì)象。 對(duì)象是 JavaScript 的數(shù)據(jù)類型。它將很多值(原始值或者其他對(duì)象)聚合在一起,可通過名字訪問這些值,因此我們可以把它看成是從字符串到值的映射。對(duì)象是...

    frolc 評(píng)論0 收藏0
  • [javascript 學(xué)習(xí)筆記] 1. 面向對(duì)象

    摘要:當(dāng)作構(gòu)造函數(shù)來使用,作為普通函數(shù)來使用,當(dāng)在全局作用域中調(diào)用一個(gè)函數(shù)時(shí),對(duì)象總是指向?qū)ο蟆U{(diào)用構(gòu)造函數(shù)時(shí)會(huì)為實(shí)例添加一個(gè)指向最初原型的的指針,而把原型修改為另外一個(gè)對(duì)象就等于切斷了構(gòu)造函數(shù)于最初原型之間的聯(lián)系。 ECMA-262 把對(duì)象定義為 無序?qū)傩缘募希鋵傩钥梢园局怠?duì)象或者函數(shù)。 即對(duì)象是一組沒有特定順序的值。對(duì)象的每個(gè)屬性或方法都有一個(gè)名字,而每個(gè)名字都映...

    Berwin 評(píng)論0 收藏0
  • 遍歷DOM元素children屬性遇到

    摘要:小結(jié)這下我們可以得出結(jié)論了個(gè)屬性返回的對(duì)象不止能遍歷到子元素,還能遍歷到來自其原型的三個(gè)屬性。既要防止那些添加修改了原型屬性的對(duì)象遍歷出多余的的結(jié)果,也要防止類似這種非標(biāo)準(zhǔn)屬性返回一個(gè)屬性的枚舉性不可控的對(duì)象的坑。 問題的引出 關(guān)于DOM元素的children屬性,以前我只在意它和childNodes屬性的區(qū)別:即children屬性只會(huì)返回子元素節(jié)點(diǎn)集合,而childNodes返回的...

    weknow619 評(píng)論0 收藏0
  • JS面向對(duì)象程序設(shè)計(jì)之創(chuàng)建對(duì)象_工廠模式,構(gòu)造函數(shù)模式,原型模式-1

    前言:最近在細(xì)讀Javascript高級(jí)程序設(shè)計(jì),對(duì)于我而言,中文版,書中很多地方翻譯的差強(qiáng)人意,所以用自己所理解的,嘗試解讀下。如有紕漏或錯(cuò)誤,會(huì)非常感謝您的指出。文中絕大部分內(nèi)容引用自《JavaScript高級(jí)程序設(shè)計(jì)第三版》。 2. 原型對(duì)象與in操作符 有兩種方式使用in操作符: 單獨(dú)使用和在for-in循環(huán)中使用。 單獨(dú)使用時(shí),in操作符會(huì)通過對(duì)象能夠訪問給定屬性時(shí)返回true。 ==...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<