codecamp

Property 特性

本规范中的特性(Attributes)用于定义和解释命名属性(properties)的状态。命名的数据属性由一个名字关联到一个下表中列出的特性 (attributes)

表5——命名的数据属性的特性
特性名称取值范围描述
[[Value]]任何 ECMAScript 语言类型通过读 property 来取到该值
[[Writable]]Boolean如果为 false,试图通过 ECMAScript 代码 [[Put]] 去改变该属性的 [[Value]],将会失败
[[Enumerable]]Boolean如果为 true,则该属性可被 for-in 枚举出来(参见 12.6.4),否则,该属性不可枚举。
[[Configurable]]Boolean如果为 false,试图删除该属性,改变该属性为访问器属性,或改变它的 attributes(和 [[Value]] 不同),都会失败。

 命名的访问器属性由一个名字关联到一个下表中列出的特性 (attributes)


表6——命名的访问器属性的特性
特性名称取值范围描述
[[Get]]Object 或 Undefined如果该值为一个 Object 对象,那么它必须是一个函数对象。每次有对该属性进行 get 访问时,该函数的内部方法 [[Call]](8.6.2)会被一个空参数列表调用,以返回该属性值
[[Set]]Object 或 Undefined如果该值为一个 Object 对象,那么它必须是一个函数对象。每次有对该属性进行 set 访问时,该函数的内部方法 [[Call]](8.6.2)会被一个参数列表调用,这个参数列表包含分配的值作为唯一的参数。property 的内部方法 [[Set]] 产生的影响可能会,但不是必须的,对随后的 property 内部方法 [[Get]] 的调用返回结果产生影响。
[[Enumerable]]Boolean如果为 true,则该属性可被 for-in 枚举出来(参见 12.6.4),否则,该属性不可枚举。
[[Configurable]]Boolean如果为 false,试图删除该属性,改变该属性为访问器属性,或改变它的 attributes(和 [[Value]] 不同),都会失败。

 如果某个命名属性的特性值没有在此规范中明确给出,那么它的默认值将使用下表的定义。


表7——默认特性值
特性名称默认值
[[Value]]undefined
[[Get]]undefined
[[Set]]undefined
[[Writable]]false
[[Enumerable]]false
[[Configurable]]false


Number 类型
Object 内部属性及方法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }