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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm2022.3.2激活【2022免费激活】2022.01.21

    (pycharm2022.3.2激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1TCF2R91JZ-eyJsaWNlbnNlSW…

    2022年3月31日
    170
  • ubuntu nginx安装配置_PHP开发环境搭建步骤

    ubuntu nginx安装配置_PHP开发环境搭建步骤一、说明正在尝试基于nginx+php搭建web服务器,中途遇到不少问题。挣扎了三四个小时终于完成了,这里分享下经验。实验环境操作系统:Ubuntu18.0464位nginx:1.14.0php:7.2.17-0php-fram:php7.2-fpm二、实验步骤1、安装必要程序以及依赖#安装程序包sudoapt-getinstallphp7.2…

    2022年9月22日
    2
  • NetXray「建议收藏」

    NetXray「建议收藏」NetXRay是由CincoNetworks公司开发的一个用于高级分组检错的软件,功能很强大。IP地址查询工具。硬件要求硬件要求对硬件要求低,可运行常用的windows平台。主要功能主要功

    2022年7月2日
    23
  • Django(37)配置django日志[通俗易懂]

    Django(37)配置django日志[通俗易懂]前言django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪、错误代码之类的详细信息。log

    2022年7月29日
    8
  • 支持向量回归(Support Vector Regression)

    支持向量回归(Support Vector Regression)支持向量回归(SupportVectorRegression)支持向量机除了能够分类,还可以用于回归。回归的目的是得到一个能够尽量拟合训练集样本的模型f(x)f(\mathbf{x})f(x),通常用的方法是构建一个样本标签与模型预测值的损失函数,使损失函数最小化从而确定模型f(x)f(\mathbf{x})f(x)。例如,在线性回归模型中,损失函数(L2损失,L1损失,huber损失)由模型输出f(x)f(\mathbf{x})f(x)与真实输出yyy之间的差别来计算,通过最小化损失函数来确

    2022年6月5日
    76
  • Proteus中的电容(Capacitors)的分类[通俗易懂]

    Proteus中的电容(Capacitors)的分类[通俗易懂]AudioGradeAxial音响级轴向引线电容AxialLeadPolypropene轴向引线聚丙烯电容AxialLeadPolystyrene轴向引线聚苯乙烯电容CeramicDisc陶瓷圆片电容DecouplingDisc去耦圆片电容ElectrolyticAluminum铝质电解电容HighTempRadial径向引线高

    2022年8月22日
    10

发表回复

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

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