JS高级编程课件06_JavaScript对象的增强知识.pdf

JS高级编程课件06_JavaScript对象的增强知识.pdf

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

JavaScript对象的增强知识

王红元coderwhy

目录

1Object.defineProperty

content

2数据属性描述符

3存取属性描述符

4Object.defineProperties

5对象的其他方法补充

coderwhy对属性操作的控制

◼在前面我们的属性都是直接定义在对象内部,或者直接添加到对象内部的:

但是这样来做的时候我们就不能对这个属性进行一些限制:比如这个属性是否是可以通过delete删除的?这个属性是否在for-

in遍历的时候被遍历出来呢?

◼如果我们想要对一个属性进行比较精准的操作控制,那么我们就可以使用属性描述符。

通过属性描述符可以精准的添加或修改对象的属性;

属性描述符需要使用Object.defineProperty来对属性进行添加或者修改;

coderwhyObject.defineProperty

◼Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

◼可接收三个参数:

obj要定义属性的对象;

prop要定义或修改的属性的名称或Symbol;

descriptor要定义或修改的属性描述符;

◼返回值:

被传递给函数的对象。

coderwhy属性描述符分类

◼属性描述符的类型有两种:

数据属性(DataProperties)描述符(Descriptor);

存取属性(Accessor访问器Properties)描述符(Descriptor);

coderwhy数据属性描述符

◼数据数据描述符有如下四个特性:

◼[[Configurable]]:表示属性是否可以通过delete删除属性,是否可以修改它的特性,或者是否可以将它修改为存取属性描述符;

当我们直接在一个对象上定义某个属性时,这个属性的[[Configurable]]为true;

当我们通过属性描述符定义一个属性时,这个属性的[[Configurable]]默认为false;

◼[[Enumerable]]:表示属性是否可以通过for-in或者Object.keys()返回该属性;

当我们直接在一个对象上定义某个属性时,这个属性的[[Enumerable]]为true;

当我们通过属性描述符定义一个属性时,这个属性的[[Enumerable]]默认为false;

◼[[Writable]]:表示是否可以修改属性的值;

当我们直接在一个对象上定义某个属性时,这个属性的[[Writable]]为true;

当我们通过属性描述符定义一个属性时,这个属性的[[Writable]]默认为false;

◼[[value]]:属性的value值,读取属性时会返回该值,修改属性时,会对其进行修改;

默认情况下这个值是undefined;

coderwhy数据属性描述符测试代码

coderwhy存取属性描述符

◼数据数据描述符有如下四个特性:

◼[[Configurable]]:表示属性是否可以通过delete删除属性,是否可以修改它的特性,或者是否可以将它修改为存取属性描述符;

和数据属性描述符是一致的;

当我们直接在一个对象上定义某个属性时,这个属性的[[Configurable]]为true;

当我们通过属性描述符定义一个属性时,这个属性的[[Configurable]]默认为false;

◼[[Enumerable]]:表示属性是否可以通过for-in或者Object.keys()返回该属性;

和数据属性描述符是一致的;

当我们直接在一个对象上定义某个属性时,这个属性的[[Enumerable]]为t

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档