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

資訊專欄INFORMATION COLUMN

屬性的可枚舉性與不可枚舉性

Jason / 1086人閱讀

摘要:判斷可枚舉屬性與不可枚舉屬性方法方法返回一個(gè)布爾值,表示指定的自身屬性是否可枚舉。

我們到MDN上搜索屬性的可枚舉性和所有權(quán)

可枚舉屬性是指內(nèi)部可枚舉標(biāo)志(enumerable)設(shè)置為true的屬性,自然不可枚舉屬性即是enumerablefalse

我們看下JavaScript基本類型和基本類型包裹對(duì)象

基本類型是指非對(duì)象且無(wú)方法的數(shù)據(jù)。
JavaScript有6種基本類型:string,number,boolean,null,undefined,symbol
除了null和undefined外,所有基本類型值都有包裹這個(gè)基本類型值的等價(jià)對(duì)象:
String Boolean Number Symbol
JavaScript有7種不同類型的值

六種 原型 數(shù)據(jù)類型

Boolean

String

Number

null

undefined

Symbol

Object對(duì)象

還有一個(gè)概念就是字面量,有以下字面量

數(shù)組字面量(Array)

布爾字面量 (Boolean)

浮點(diǎn)數(shù)字面量 (Float)

整數(shù) (Int)

對(duì)象字面量 (Object)

RegExp

字符串字面量 (String)

好了好了扯遠(yuǎn)了,為什么說(shuō)這些呢,拋出問題,以上屬性是否可枚舉呢?

下面來(lái)看一個(gè)例子:

function Person() {
    this.name = "fyflying"
}
Person.prototype = {
    hobby: "coding"
}
var person = new Person()
Object.defineProperty(person, "sex", {
    value: "female"
})
for (var item in person) {
    console.log(item + ":" + person[item])
}
/**
name:fyflying
hobby:coding
**/
Object.keys(person)
// ["name"]
JSON.stringify(person)
//"{"name":"fyflying"}"

可以看到除了sex屬性其他都遍歷到了,而且使用for..inObject.keys還是有區(qū)別的,區(qū)別就在于使用for...in還會(huì)遍歷出對(duì)象從原型鏈上繼承來(lái)的可枚舉屬性

通過(guò)Object.defineProperty定義的屬性,該標(biāo)志值默認(rèn)是false, 所以不可枚舉,通過(guò)for..inObject.keys()都遍歷不到。

判斷可枚舉屬性與不可枚舉屬性方法
propertyIsEnumerable(): 方法返回一個(gè)布爾值,表示指定的自身屬性是否可枚舉。(不包括原型鏈繼承的屬性)

區(qū)別以下方法:

使用 for...in迭代,遍歷出自身以及原型鏈上的可枚舉的屬性,通過(guò)hasOwnProperty進(jìn)行篩選能遍歷出自身可枚舉屬性
而使用Object.keys直接遍歷出的自身可枚舉屬性組成的數(shù)組
使用getOwnPropertyNames可以訪問自身可枚舉屬性與不可枚舉屬性

另外,還有大漠的文章參考,對(duì)于以上幾個(gè)方法介紹的很詳細(xì)。對(duì)象屬性的枚舉

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

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

相關(guān)文章

  • ECMAScript6(8):對(duì)象的擴(kuò)展

    基本擴(kuò)展 允許使用已有對(duì)象賦值定義對(duì)象字面量,并且只寫變量名即可 var name = Bob; var getName = function(){console.log(this.name);}; var person = {name, getName}; //相當(dāng)于 //var person = { //name: Bob, //getName: function(){console.log...

    pingan8787 評(píng)論0 收藏0
  • JS基礎(chǔ)篇--JS中的可枚舉不可枚舉以及擴(kuò)展

    摘要:在中,對(duì)象的屬性分為可枚舉和不可枚舉之分,它們是由屬性的值決定的。這是因?yàn)橹袃?nèi)置的屬性是不可枚舉的,所以不能被訪問到。此對(duì)象不可擴(kuò)展且指定的屬性名稱不存在。返回值一個(gè)數(shù)組,其中包含對(duì)象的可枚舉屬性和方法的名稱。 在JavaScript中,對(duì)象的屬性分為可枚舉和不可枚舉之分,它們是由屬性的enumerable值決定的。可枚舉性決定了這個(gè)屬性能否被for…in查找遍歷到。 一、怎么判斷屬性...

    dreamans 評(píng)論0 收藏0
  • 【基礎(chǔ)系列】javascript中的對(duì)象

    摘要:自定義對(duì)象是指由開發(fā)者在代碼中所創(chuàng)建的對(duì)象。繼承屬性是指在對(duì)象原型鏈中的屬性。與此同時(shí),對(duì)象的屬性還具有一些特性可寫代表是否可以設(shè)置該對(duì)象所對(duì)應(yīng)的該屬性的值。我們可以利用來(lái)判斷這個(gè)對(duì)象是否封閉,傳入一個(gè)對(duì)象,返回布爾值。 這次我們好好聊一聊對(duì)象這個(gè)東西,本次說(shuō)的不是array,也不是function,而是object 基礎(chǔ)概念 對(duì)象是一種特殊的數(shù)據(jù)類型,這種數(shù)據(jù)類型還有其他的很多叫法...

    617035918 評(píng)論0 收藏0
  • JS學(xué)習(xí)之Object

    摘要:文中的多為構(gòu)造函數(shù)原型對(duì)象屬性為函數(shù)的專屬屬性,表示函數(shù)的原型對(duì)象。關(guān)于各種數(shù)據(jù)類型的屬性的展示對(duì)象的構(gòu)造器函數(shù)該屬性指向創(chuàng)建該對(duì)象原型的構(gòu)造函數(shù)。對(duì)對(duì)象的凍結(jié)狀態(tài)的設(shè)置和判斷,前者讓凍結(jié)對(duì)象,后者判斷對(duì)象是否被凍結(jié)。 前言 上篇文章介紹了JS的對(duì)象,本文將介紹Object這個(gè)基類,主要介紹其屬性和方法(其實(shí)這些在MDN里都有^_^,點(diǎn)擊這里可以直通MDN)。好了廢話不多說(shuō)了,直接開始...

    qujian 評(píng)論0 收藏0
  • ES6入門之對(duì)象的擴(kuò)展

    摘要:循環(huán)遍歷對(duì)象自身的和繼承的可枚舉屬性不含屬性。返回一個(gè)數(shù)組,包含對(duì)象自身的所有屬性的鍵名。目前,只有對(duì)象方法的簡(jiǎn)寫法可以讓引擎確認(rèn),定義的是對(duì)象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 屬性的簡(jiǎn)潔表示法 在ES6中 允許直接寫入變量和函數(shù),作為對(duì)象的屬性和方法,使得代碼的書寫更為簡(jiǎn)潔。...

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

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

0條評(píng)論

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