高程第六章-关于JS对象属性的特性-读书笔记

  属性分为两类:数据属性和访问器属性

一、数据属性

  特性:[[Configurable]]、[[Enumerable]]、[[Writable]]、[[Value]];

修改方法Object.defineProperty(‘对象名’,'属性名','描述符对象');也可以通过此方法为对象添加属性,但是添加时如果不指定Configurable、Enumerable、Writable的值,它们的值默认都为false。兼容ie9及以上。

二、访问器属性

特性:[[Configurable]]、[[Enumerable]]、[[Get]]、[[Set]];

访问器属性不能直接定义,只能使用Object.defineProperty()来定义,访问器属性可以在Set函数中做很多处理操作,例如修改其他属性的值,定义时如果get或set没有定义,会导致无法进行读出或者写入操作,且严格模式下都会抛错。在一些低版本浏览器中,有_defineGetter_()和_defineSetter_()用来创建访问器属性。

同时定义多个属性,包括数据属性和访问器属性,Object.defineProperties();具体可见高程(第3版)142页;

三、读取属性的特性

Object.getOwnPropertyDescriptor('对象名','属性名');

发布了4 篇原创文章 · 获赞 3 · 访问量 826

猜你喜欢

转载自blog.csdn.net/weixin_41484544/article/details/81508175