Object.defineProperty用法

news2024/11/30 2:32:01

Object.defineProperty() 定义新属性和修改原有的属性

Object.defineProperty( obj,prop,descriptor)

翻译:对象.定义属性(对象,属性名必须是字符写法,{ value:所有 })

创建一个对象:

var obj = {
        id:1,
        pname:'小米',
        price:1999
    } ;

以前的对象添加和修改属性方式:

obj.num = 1000;  //直接新添加属性
obj.price = 99;  //直接修改属性
console.log(obj);

现在新的写法 添加属性:

Object.defineProperty(obj,'num',{
        value:1000
    });
    console.log(obj);

现在新的写法 修改属性:

Object.defineProperty(obj,'price',{
        value:9.9
    });
    console.log(obj);

限定死一个值,不允许修改:   writable用法

Object.defineProperty(obj,'id',{
        //如果值是false 不允许修改属性值,是true就可以修改
        writable:true,
    });
    obj.id = 2,
    console.log(obj); 


//是turn 可改  false不可改

判断是否可以被枚举,遍历 writable:  true 可以允许遍历 ,false不允许

Object.defineProperty(obj, 'address', {
            value: '凡科优向公司',
            writable: false,
            // enumerable:如果值是false 则不允许遍历,默认值是false
            enumerable: false
        });

        console.log(obj);
        console.log(Object.keys(obj));

 判断是否可以被删除或者是是否可以再次修改特性ture\false   默认是false

    configurable:true 可以允许删除 ,false不允许

Object.defineProperty(obj, 'address', {
            value: '凡优向公司',
            writable: false,
            // enumerable:如果值是false 则不允许遍历,默认值是false
            enumerable: false,
            // configurable:如果值是false 则不允许删除这个属性,默认值是false
            configurable: false
        });

        console.log(obj);
        console.log(Object.keys(obj));
        delete obj.address;
        console.log(obj);

总结:例子中:如果是自己添加num,想可以获取属性forEash . key(obj) 中出现num,那么需要设置enumerable: true,才显示。

如果第一次已经设置我是为configurable: false,那后面在改成configurable: ture 会报错,告诉您不能重复修改特性。

 

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OSI七层参考模型和TCP/IP四层(五层)参考模型

OSI七层参考模型 OSI(OSI,Open System Interconnection)七层模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅…

泰勒展开式

泰勒展开式 文章目录泰勒展开式简介定义近似举例推导理解参考简介 泰勒公式,也称泰勒展开式,可以用来在局部范围内近似复杂函数。 通俗的讲: 设有一个复杂的未知函数f(x)f(x)f(x),我们想要知道它在某个范围[a,b][a,b][a,b]内的值…

抽象工厂模式

思考抽象工厂模式 抽象工厂专注于产品簇的实现,主要是那些有关联关系的,如果只有一个产品的话就退化成了工厂方法模式 1.抽象工厂模式的本质 抽象工厂模式的本质:选择产品簇的实现。 产品簇(Product family)指具有相同或相似的功能…

Simulink电机控制代码生成-----关于PI控制器参数整定的一点总结

目录 PI控制器的参数整定方法 方法一: 方法二: 方法对比 总结 看过很多论文,对PI参数的整定方法五花八门,还有PI参数整定的口诀,所谓口诀就是试凑法。除了试凑法,本文提供另外两种方法来整定PI参数&am…

【JavaSE】类与对象--封装性

文章目录一、面向对象的三大特性二、封装性1.什么是封装性?2.为什么要有封装性?3.封装性的作用4.封装性的实现步骤5.访问限定修饰符一、面向对象的三大特性 面向对象的三个基本特征是:封装、继承、多态。 二、封装性 1.什么是封装性&#xf…

BLE学习(4):蓝牙地址类型和设备的隐私

蓝牙地址也被称为蓝牙MAC地址,它能唯一标识一个蓝牙设备的48位的值。在蓝牙规范中,它被称为BD_ADDR。蓝牙的地址类型可以分为两种:public addresses和random addresses,其中random addresses又可再细分为几类,如下图所…

centos7.8手动部署php环境 01 nginx1.8.0编译安装

环境说明: 一、使用电脑 MacBook Pro 二、ssh 工具 finalShell 三、本地虚拟机 VMware Fusion 四、服务器配置 CentOS 7.8 64位 ps:虚拟机安装CentOS省略 登录服务器 一、安装基础工具 yum install net-tools -y yum install wget -y二、将yum源更改为腾…

创新型智慧农业信息化系统建设方案

农业电信增值服务与农村信息化建设要充分考虑新的信息技术、移动通信技术带来的革命,尤其是三网融合、移动互联网、下一代互联网、物联网、云计算、移动支付等新型产品与业务对我们的影响。 存在问题 •网络覆盖基础差 仍然有很多行政村没有宽带网络的覆盖&#x…

TiDB HTAP

TiDB 数据库 HTAP 概述 HTAP技术 OLAP和OLTP带来了多副本的问题。 HTAP的要求 HTAP的架构 异步复制,不参与投票。 HTAP的特性 行列混合 列存支持基于主键的实时更新TiFlash作为列存副本OLTP和OLAP业务隔离 智能选择(CBO自动或者人工选择)…

IB数学的备战技巧有哪些?

去知名品牌院校进修是许多学员的理想,可是众所周知这些重点大学的入校规定是十分严谨的。因此许多学员为了更好地提高自身的入校概率,就报名参加了一些可以大大加分的国际课程内容和考試。在其中IB数学课则是最受众多学员钟爱的一个课程内容。近些年&…

PyTorch 官方库「上新」,TorchMultimodal 助力多模态人工智能

多模态人工智能是一种新型 AI 范式,是指图像、文本、语音、视频等多种数据类型,与多种智能处理算法相结合,以期实现更高的性能。 近日,PyTorch 官方发布了一个 domain library–TorchMultimodal,用于 SoTA 多任务、多模…

[Linux]----进程间通信之共享内存

文章目录前言一、system V共享内存原理二、创建共享内存关联和去关联共享内存进行通信三、基于管道进行共享内存通信四、临界资源五、信号量总结前言 基于上篇我们利用管道进行进程间通信的使用和实现,本篇将带大家通过共享内存进行进程间通信! 正文开始…

R9.8-9.8-9.8-9.8A_特点

R9.8-9.8-9.8-9.8A_特点 R9.8-9.8-9.8-9.8A_特点哈威柱塞泵主要特点是高自吸转速,工作效率高,结构紧凑,工作压力高等。该泵可为工程机械、铲雪车、路堤割草机、柴油叉车、自驱式工作平台和农业机械中的执行元件等提供压力油。 哈威液压泵R9.…

LIRA: Learnable, Imperceptible and Robust Backdoor Attacks 论文笔记

论文信息 论文名称LIRA: Learnable, Imperceptible and Robust Backdoor Attacks作者Khoa Doan(Baidu Research)会议/出版社ICCV 2021pdf📄在线pdf代码💻pytorch其他该作者还有一篇攻击的论文,在线pdf 介绍 本文提出了一种新的攻击框架 LIR…

技术中台的定义、范围与内容

【摘要】中台不能算是一个新的概念,只不过把它从一个单一系统扩展到了企业内部所有系统和组织级(企业架构级)的概念。那么时下“中台”的本质究竟是什么?技术中台又该如何理解? 前台、中台、后台的概念早就有之,只不过不同的场景下有不同的内涵。前中后台是从应用系统架…

T293037 [传智杯 #5 练习赛] 白色旅人

题目描述 有一个物品队列 \frak BB,初始时为空。现在共有三种操作。每个操作会给定三个整数 \mathrm{op},x,yop,x,y,其中 \mathrm{op}op 表示操作种类,x,yx,y 是操作的参数。操作分为如下三种: 11:向 \frak BB 尾部添…

React 简书项目实战【3】实现搜索框动画

React 简书项目实战【3】实现搜索框动画 添加判断变量 header/index.js 核心代码 ... class Header extends Component {constructor(props) {super(props);this.state {focused: true}}render() { ...添加classname header/index.js 核心代码 搜索框和放大镜图标 <…

手把手教你如何用界面组件DevExpress WPF应用一个模板主题

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF组件包…

VR失重太空舱游乐设备|航空航天VR体验|VR航天航空体验馆

普乐蛙推出了十几种不同类型的VR航天航空体验设备&#xff0c;VR创意内容丰富好玩&#xff0c;360全景还原航空各个场景&#xff0c;体验享受航空中的失重、飞行、旋转等刺 激与乐趣;模拟月球、太空、空间站等丰富航天场景&#xff0c;近距离体验航天科幻十足的魅力;通过沉浸式…

vue(移动端)使用高德地图实现精准定位

目录 效果图 前提准备 代码展示 效果图 两个页面 页面一&#xff08;粗略定位&#xff09; 点击城市进入页面二 &#xff08;粗略定位&#xff09;&#xff0c;搜索框输入具体位置&#xff08;以大连理工大学为例&#xff09; 点击大连理工大学&#xff0c;回到页面一&…