亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

通過實例解析js可枚舉屬性與不可枚舉屬性

瀏覽:81日期:2024-04-11 11:22:10

在JavaScript中,對象的屬性分為可枚舉和不可枚舉之分,它們是由屬性的enumerable值決定的??擅杜e性決定了這個屬性能否被for…in查找遍歷到。

一、怎么判斷屬性是否可枚舉

js中基本包裝類型的原型屬性是不可枚舉的,如Object, Array, Number等,如果你寫出這樣的代碼遍歷其中的屬性:

var num = new Number();for(var pro in num) { console.log('num.' + pro + ' = ' + num[pro]);}

它的輸出結果會是空。這是因為Number中內置的屬性是不可枚舉的,所以不能被for…in訪問到。

Object對象的propertyIsEnumerable()方法可以判斷此對象是否包含某個屬性,并且這個屬性是否可枚舉。

需要注意的是:如果判斷的屬性存在于Object對象的原型內,不管它是否可枚舉都會返回false。

二、枚舉性的作用

屬性的枚舉性會影響以下三個函數的結果:

for…in Object.keys() JSON.stringify

先看一個例子,按如下方法創建kxy對象:

function Person() { this.name = 'KXY';}Person.prototype = { constructor: Person, job: 'student',}; var kxy = new Person();Object.defineProperty(kxy, 'sex', { value: 'female', enumerable: false});

其中用defineProperty為對象定義了一個名為”sex”的不可枚舉屬性

接下來做以下驗證:

for(var pro in kxy) { console.log('kxy.' + pro + ' = ' + kxy[pro]); }

遍歷結果:

通過實例解析js可枚舉屬性與不可枚舉屬性

可以看到除了”sex“之外的屬性都遍歷到了

console.log(Object.keys(kxy));

結果:

通過實例解析js可枚舉屬性與不可枚舉屬性

只包含”name”屬性,說明該方法只能返回對象本身具有的可枚舉屬性。

console.log(JSON.stringify(kxy));

結果:

通過實例解析js可枚舉屬性與不可枚舉屬性

此方法也只能讀取對象本身的可枚舉屬性,并序列化為JSON對象。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 丝袜 亚洲 另类 欧美 变态 | 久久精品99无色码中文字幕 | 污污免费网站 | 日本亚洲精品久久 | 幸福宝色多多 | 国内小情侣一二三区在线视频 | 在线观看欧洲成人免费视频 | 中文字幕久热在线精品 | 成人国产精品毛片 | 97一级毛片全部免费播放 | 日韩精品大片 | 欧美一级淫片a免费播放口aaa | 国产第一页在线视频 | 欧美视频一区二区三区 | 日韩专区一区 | 在线看免费观看韩国特黄一级 | 91在线 | 丁香六月纪婷婷激情综合 | 日韩视频免费一区二区三区 | 日本一级特级毛片视频 | 狠狠色婷婷丁香综合久久韩国 | 精品国产呦系列在线看 | 精品久久伦理中文字幕 | 国产精品亚洲综合第一区 | 日产免费线路一页二页 | 国产成人精品综合网站 | 日韩精品视频免费观看 | 中国人免费观看高清在线观看二区 | 国产精品7m凸凹视频分类大全 | 看黄网址在线观看 | 国产亚洲精彩视频 | 国产羞羞的视频在线观看免费 | 亚洲色图综合图区 | 日本r级在线中文在线播放 日本tv欧美tv天堂 | 成人在线视频免费观看 | 欧美亚洲国产一级毛片 | 成人五级毛片免费播放 | 国产精品爱久久电影 | 日韩成人影院 | 成人福利热舞hd | 欧美精品99毛片免费高清观看 |