亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript對象的property屬性詳解

2019-11-20 20:53:14
字體:
來源:轉載
供稿:網友

JavaScript中對象的property有三個屬性:
1.writable。該property是否可寫。
2.enumerable。當使用for/in語句時,該property是否會被枚舉。
3.configurable。該property的屬性是否可以修改,property是否可以刪除。

在ECMAScript 3標準中,上面三個屬性的值均為true且不可改:新建對象的property是可寫的、可被枚舉的、可刪除的;而在ECMAScript 5標準中,可通過property的描述對象(property descriptor)來對這些屬性進行配置和修改。

如果將property的值信息也作為property的屬性來看的話,對象中的property擁有四個屬性:value、writable、enumerable和configurable。

對于用getter和setter方法來定義的property,由于其沒有writable屬性(property是否可寫取決于setter方法是否存在),因此這種property也有四個屬性:get、set、enumerable和configurable ― get和set屬性的值為function。

獲取對象property的屬性

ECMAScript 5標準中,可以通過Object.getOwnPropertyDescriptor()來獲取對象自身某個property的屬性信息:

復制代碼 代碼如下:

var o = {x:1};
var a = Object.create(o);
a.y = 3;
console.log(Object.getOwnPropertyDescriptor(a, "y"));//Object {configurable=true, enumerable=true, writable=true, value=3}
console.log(Object.getOwnPropertyDescriptor(a, "x"));//undefined

可以看到,如果property不存在或者property繼承自原型對象,則返回undefined。

設置對象property的屬性

ECMAScript 5標準中,可以通過Object.defineProperty()來設置對象自身某個property的屬性:

復制代碼 代碼如下:

Object.defineProperty(a, "y", {
    value:3,
    writable:true,
    enumerable:false,
    configuration:true
});
console.log(a.propertyIsEnumerable("y"));//false

如果設置的property是從原型對象中繼承而來的,那么JavaScript將在對象自身中創建一個同名的property,這與賦值操作的相關行為一致:
復制代碼 代碼如下:

Object.defineProperty(a, "x", {
    value:1,
    writable:true,
    enumerable:false,
    configuration:true
});
console.log(a.propertyIsEnumerable("x"));//false
console.log(o.propertyIsEnumerable("x"));//true

除了修改property的屬性,還可以將property改為用getter或setter訪問:
復制代碼 代碼如下:

Object.defineProperty(a, "y", {
    get:function(){return 42;}
});
console.log(a.y);//42

在使用Object.defineProperty()時,property描述對象中的屬性值可以部分忽略,當屬性值有所忽略時,JavaScript中的處理規則如下:

如果property是新建的,則所有忽略的屬性值均為false或undefined。
如果property已存在,則所有忽略的屬性值維持原樣不變。


批量設置對象property的屬性

如果需要一次性設置多個property的屬性,可以使用Object.defineProperties()語句。該語句將返回修改后的對象。

復制代碼 代碼如下:

Object.defineProperties(a, {
    "y":{value:79, writable:true, enumerable:true, configurable:true},
    "z":{value:99, writable:true, enumerable:true, configurable:true}
});
console.log(a);//Object {y=79, z=99}

property屬性設置規則

當對property屬性進行修改時,必須遵循以下規則。如果違反規則,JavaScript將報TypeError錯誤:

如果對象不是extensible的,則只能修改已有property的屬性,無法添加新的property。
如果property的configurable屬性為false,則無法修改configurable和enumerable屬性的值,對于writable屬性,可以將其從true改為false,但無法將其從false改為true。如果property由getter和setter定義,則getter和setter方法無法被修改。
如果property的configurable屬性和writable屬性均為false,則property值不可改。如果property的writable屬性為false,但其configurable屬性為true,則property值依然可以修改。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人欧美在线观看| 日韩免费在线看| 中文字幕综合一区| 亚洲小视频在线观看| 亚洲电影免费观看高清完整版在线| 欧美高清在线播放| 亚洲黄色www网站| 91精品视频播放| 国产精品狼人色视频一区| 亚洲一区二区三区在线视频| 午夜精品一区二区三区视频免费看| 日韩电影在线观看永久视频免费网站| 久久99精品久久久久久噜噜| 欧美大片免费观看| 9.1国产丝袜在线观看| 欧美成人免费小视频| 欧美在线一区二区三区四| 激情久久av一区av二区av三区| 欧美日韩国产一中文字不卡| 精品久久久久久久久久| 欧美成人sm免费视频| 欧美性色xo影院| 欧美激情性做爰免费视频| 大胆欧美人体视频| 久久6免费高清热精品| 最近2019中文免费高清视频观看www99| 久久五月天色综合| 在线观看亚洲视频| 色播久久人人爽人人爽人人片视av| 欧美精品在线看| 91在线视频导航| 欧美猛男性生活免费| 日本一区二区在线播放| 一区二区欧美日韩视频| 久99九色视频在线观看| 亚洲人成网7777777国产| 国产亚洲一区精品| 亚洲另类欧美自拍| 久久中文字幕视频| 国产亚洲视频中文字幕视频| 欧美亚洲成人精品| 国产精品久久久久久亚洲影视| 欧美精品少妇videofree| 国产一区二区三区久久精品| 日本精品一区二区三区在线播放视频| 亚洲视频在线免费观看| 91美女高潮出水| 亚洲毛片在线观看| 狠狠躁天天躁日日躁欧美| 97视频在线观看亚洲| 亚洲激情在线观看视频免费| 国产精品99久久久久久久久| 久久91亚洲人成电影网站| 久久精品国产免费观看| 国产精品扒开腿做爽爽爽的视频| 91精品国产自产在线观看永久| 欧美成年人在线观看| 国产成人精品免费久久久久| 久久99精品久久久久久琪琪| 91视频九色网站| 欧美成人免费观看| 国产精品久久久久国产a级| 亚洲精品xxx| 亚洲电影免费观看高清| 欧美性色视频在线| 亚洲精品v欧美精品v日韩精品| 亚洲欧美日韩一区二区三区在线| 久久精品色欧美aⅴ一区二区| 日本高清不卡的在线| 国产成人激情小视频| 欧美孕妇与黑人孕交| 亚洲欧美色图片| 欧美日韩日本国产| 国产黑人绿帽在线第一区| 国产精品小说在线| 亚洲精品一区二区三区不| 精品国产91久久久| 欧洲午夜精品久久久| 国产精品久久久999| 国产精品亚洲激情| 久久天天躁狠狠躁夜夜躁2014| 亚洲国产成人精品久久久国产成人一区| 97超级碰碰碰久久久| 91情侣偷在线精品国产| 国产香蕉精品视频一区二区三区| 日本在线观看天堂男亚洲| 欧美精品在线网站| 亚洲国产美女久久久久| 亚洲视屏在线播放| 久久精品中文字幕一区| 欧美理论电影在线观看| 亚洲乱码一区二区| 国产精品va在线播放| 亚洲成人亚洲激情| www.亚洲成人| 主播福利视频一区| 日韩电影网在线| 欧美成年人在线观看| 91免费福利视频| 国产亚洲视频中文字幕视频| 曰本色欧美视频在线| 亚洲色图50p| 国产美女扒开尿口久久久| 亚洲最大福利视频网| 国产精品白嫩美女在线观看| 亚洲国产精品免费| 国产精品久久久久久久久久尿| 久久久成人av| 欧美午夜美女看片| 亚洲第一男人av| 欧美大奶子在线| 亚洲欧美日韩天堂一区二区| 成人国产精品久久久久久亚洲| 国产精品福利无圣光在线一区| 日韩欧美一区二区三区| 国产精品视频区| 久久亚洲国产精品| 在线国产精品视频| 在线a欧美视频| 日韩欧美在线观看| 最新日韩中文字幕| 欧美成人精品在线观看| 一区二区欧美亚洲| 亚洲色图综合久久| 2020欧美日韩在线视频| 成人免费在线视频网站| 日韩免费黄色av| 国产mv免费观看入口亚洲| 日本韩国在线不卡| 精品国内自产拍在线观看| 亚洲国产精品久久| 成人免费观看49www在线观看| 欧美激情啊啊啊| 91久久国产婷婷一区二区| 成人福利网站在线观看| 欧美视频在线观看免费| 成人网中文字幕| 91av免费观看91av精品在线| 有码中文亚洲精品| 亚洲一区国产精品| 中文字幕日韩av电影| 91爱爱小视频k| 国产精品一区二区三区久久| 国产91色在线免费| 国产精品综合久久久| 色综合伊人色综合网| 日韩极品精品视频免费观看| 国产精品入口尤物| 黑人巨大精品欧美一区二区| 91免费看国产| 亚洲第一页中文字幕| 91久久精品国产91性色| 欧美麻豆久久久久久中文| 国产精品永久免费| 亚洲国产三级网| 在线观看日韩专区| 青青在线视频一区二区三区| 亚洲人成网站777色婷婷| 久久精品久久精品亚洲人| 国产成人亚洲综合青青| 久久精品国产久精国产思思| 欧美黑人一级爽快片淫片高清| 欧美日韩午夜激情| 欧美性猛交xxxx黑人|