码迷,mamicode.com
首页 > 编程语言 > 详细

理解JavaScript中的属性描述符

时间:2018-07-27 13:11:55      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:http   不可   赋值运算符   不包含   val   描述   config   value   www   

我们把描述JavaScript中定义内部特性的属性叫做属性描述符

分为两大类:数据描述符和存取描述符

数据描述符是一个拥有可写或不可写的属性(Writable);

存取描述符不包含数据值,是一组拥有getter和setter属性的描述符;

描述符必须是这两者之一,不可能都是这两者;

数据描述符合存取描述符都具有以下的可选键值:

configurable这个指的是描述,当属性的configurable的值为true的时候,该属性的描述符才可以改变,同时该属性可以从对象上被删除,默认值是false

enumerable这个指的是枚举,当属性的enumerable的值为true的时候,该属性才能出现在对象的枚举属性中,默认也为false。

数据描述符具有以下的可选键值;

value:该属性对应的值,可以是任何有效的js值(数值,对象,函数····),默认是undefined;
writable:当且仅当writable的值为true的时候,value的值才能被赋值运算符所改变,默认值是false;

存取描述符具有以下的可选键值;
get:一个给属性提供getter的方法,如果没有getter则为undefined,当访问该属性的时候,该方法会被执行,方法执行的时候没有参数传入(括号中没有内容),但是会传入this对象(由于继承关系,这里的this并不一定是定义该属性的对象)默认值是undefined
set:一个给属性提供setter的方法,如果没有setter则为undefined 当属性值被修改的时候,该方法会被触发,该方法接受唯一的参数就是属性的新的参数值 默认是undefined
https://www.jianshu.com/p/19529527df80

理解JavaScript中的属性描述符

标签:http   不可   赋值运算符   不包含   val   描述   config   value   www   

原文地址:https://www.cnblogs.com/zhangxin123/p/9376885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!