JavaScript对象

JavaScript对象

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

javascript 对象

1、数据属性:

[[Configurable]] 表示是否能通过delete删除属性从而又一次定义属性,是否能改动属性的特性,或者是否能把属性改动为訪问器属性。直接在对象上定义的属性,它们的默认值为true

[[Enumberable]] 表示是否能通过for-in 循环返回属性。直接在对象上定义的属性,它们的这个特性默认值为true

[[Writable]] 表示是否能改动属性的值。直接在对象上定义的属性,他们的这个特性默认值为true

[[Value]] 包括这个属性的数据值。 读取属性值的时候,从这个位置读; 写入属性值的时候,把新值保存在这个位置。这个特性的默认值为undefined

var person={};

Object.defineProperty(person, “name”, {


writable: false,


value: “Bruce”

});

alert(person.name);  //Bruce

person.name = “Bao”;

alert(person.name);  //Bruce

这个样例创建一个名为name的属性,它的值”Bruce”是仅仅读的。这个属性的值是不可改动的,假设尝试为它指定新值,则在非严格模式下,赋值操作将会导致抛出错误。

类似的规则也适用于不可配置的属性。比如:

var person = {};

Object.defineProperty(person, “name”, {


configurable:false,


value: “Bruce”

})

alert(person.name);   //Bruce

delete person.name;

alert(person.name);   //Bruce

把configurable 设置为false, 表示不能从对象中删除属性。假设对这个属性进行调用delete, 则在非严格模式下什么也不会发生,而在严格模式下会导致错误。并且,一旦把属性定义为不可配置的,就不能再把它变回可配置了。此时,再调用Object.defineProperty()方法改动除writable之外的特性,都会导致错误:

var person = ();

Object.defineProperty(person, “name”,{


configurable: false,


value: “Bruce”

});

//抛出错误

Object.defineProperty(person, “name”, {


configurable: true,


value: “Bruce”

});

也就是说能够多次调用Object.defineProperty()方法改动允许属性,但在把configurable特性设置为false之后就会有限制了。

在调用Object.defineProperty()方法时,假设不指定,configurable、enumberable、和writable特性默认值都是false。多数情况下,可能没有必要利用Object.defineProperty()方法提供这些高级功能。只是,理解这些概念对理解JavaScript对象却很实用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 模电总结(一)「建议收藏」

    模电总结(一)「建议收藏」本总结用于个人复习、考研需要,也可供其他小伙伴学习、借鉴。基于GAY电期末引导,先粗略基于gay电期末写五篇。所以只为建立系统,对细节并没有深挖。第一章半导体及其器件个人概述——这一章我们学什么呢?学半导体的基本知识,pn结是什么,二极管的构造与特性,如何分析二极管的基本电路。(具体如下)但是,因为这里是现初步建立体系,我们在这讨论的是一些枝干,对部分知识忽略。gay电在此考的是半导体的基本知识和pn结和二极管基本电路。这一章我们就讲这个。首先,我们要了解半导体器件是什么?..

    2022年6月20日
    27
  • 关于Pytorch中双向LSTM的输出表示问题

    关于Pytorch中双向LSTM的输出表示问题在使用pytorch的双向LSTM的过程中,我的大脑中蒙生出了一个疑问。双向的lstm的outputs的最后一个状态与hidden,两者之间肯定有所联系,但具体是什么样子的呢?会不会hidden状态存储的就是outputs的最后一个状态,这样的话,岂不是会导致hidden并不能表示整个序列的双向信息吗?带着这个疑问,我开始了实验。具体的实验代码,这里就不放了。直接放实验结果吧。output_size:torch.Size([14,32,100])hidden_size:torch.S

    2022年6月22日
    65
  • python常用模块大全_python常用

    python常用模块大全_python常用mathmath.ceil(a):用来返回≥a的最小整数math.floor(a):用来返回≤a的最大整数round(a[,b])如果没有参数b,只有a,round()作用是四舍五入如果

    2022年7月28日
    1
  • C语言实现-航空订票系统(飞机订票系统)[通俗易懂]

    C语言实现-航空订票系统(飞机订票系统)[通俗易懂]开发环境:CodeBlocks开发语言:C实现功能:登录,订票,退票数据存储:文本读写涉及文件:​相关文件下载:码云:传送门 GitHub:传送门相关图片(仅供参考):程序是

    2022年8月4日
    3
  • 笔记:别忘记varyonvg

    笔记:别忘记varyonvg

    2021年8月23日
    71
  • Minimum Fleet Problem「建议收藏」

    Minimum Fleet Problem「建议收藏」本文为MITSenseableCityLaboratory2018年5月23号发表于Nature杂志Addressingtheminimumfleetprobleminon-demandurbanmobility论文的学习笔记。问题定义给定一批出行需求,在出行需求被严格满足且最大空驶时间不超过δ分钟约束下,找到…

    2022年6月5日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号