JS defineProperty详解

news/2024/10/17 19:21:24/

defineProperty

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

let obj = {}
//与我们使用 obj.name = 'zhangsna' 效果一样 但是用defineProperty定义的属性无法改变 或者删除
Object.defineProperty(obj,'name',{value:'zhangsan'
})
console.log(obj);

let obj = {}
Object.defineProperty(obj,'name',{value:'zhangsan'
})
obj.name = 'lisi'
delete obj.name
console.log(obj);

不论修改还是删除 结果还是张三

当我们想要修改或者删除属性需要对其进行配置
configurable:true|false 默认为false当值为true时属性可以被删除
writable:true|false 默认为false 当值为true时属性可以被修改

let obj = {}
Object.defineProperty(obj,'name',{value:'zhangsan',configurable:true,writable:true
})
obj.name = 'lisi'
console.log(obj);
//删除属性
let obj = {}
Object.defineProperty(obj,'name',{value:'zhangsan',configurable:true,writable:true
})
obj.name = 'lisi'
delete obj.name
console.log(obj);

修改属性

删除后

此外配置还有
enumerable:true|false 该属性为true对象就可以枚举属性影响的有
for…in 遍历自身属性和可枚举的属性
object.keys 返回自身所有可枚举的属性的键名
json.strings 字符串化自身可枚举的属性

get和set 是函数 当使用get 和set 不能设置 writable 和configurable

let obj = {}
Object.defineProperty(obj,'name',{configurable:true,enumerable:true,get(){return name},set(val){name = val}
})
obj.name = 'lisi'console.log(obj);


http://www.ppmy.cn/news/1132055.html

相关文章

前端设计跨异步处理手段

简单描述下笔者所了解的单bit和多bit信号跨时钟域处理的常见手段。 单bit信号跨时钟域处理手段 电平信号:可以直接打拍处理;脉冲信号(原始脉宽需保持至少2个DST时钟宽度):可以直接打拍处理,对同步后脉宽不…

亲测可用国产GPT人工智能

分享一些靠谱、可用、可以白嫖的GPT大模型。配合大模型,工作效率都会极大提升。 清华大学ChatGLM 官网: 智谱清言中国版对话语言模型,与GLM大模型进行对话。https://chatglm.cn/开源的、支持中英双语的1300亿参数的对话语言模型&#xff0…

【Unity的HDRP渲染管线下实现好用的GUI模糊和外描边流光效果_Blur_OutLine_案例分享(内附源码)】

实现好用的模糊效果_Blur HDRP渲染管线下搭建场景创建RenderTextureRenderTexture 与相机的配置:UI层 Canvas的不同Render Mode:Canvas 在Screen Space - Overlay 模式下:UI旋转Y轴,没有透视。切换到Screen Space - Camera 模式下:UI层跑到物体后面去了,将Plane Distance…

道可云元宇宙每日资讯|甸柳中心幼儿园智慧幼+元宇宙空间上线

道可云元宇宙每日简报(2023年9月27日)讯,今日元宇宙新鲜事有: 甸柳中心幼儿园“智慧幼”元宇宙空间上线 9月26日,狮子座甸柳中心幼儿园“智慧幼”元宇宙空间上线仪式在山东新闻大厦成功举办。狮子座甸柳中心幼儿园“智…

【AI视野·今日Robot 机器人论文速览 第四十一期】Tue, 26 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 26 Sep 2023 Totally 73 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Extreme Parkour with Legged Robots Authors Xuxin Cheng, Kexin Shi, Ananye Agarwal, Deepak Pathak人类可以通过以高度动态…

唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)

Figure 窗口初始化 figure 使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。f figure(___) 返回 Figure 对象。可使用 f 在创建图窗后查询或修改其属性。figure(f) 将 f 指定的图窗作为当前图窗,并将其显示在其他所有图窗的上面。 figure(n) 查找 Nu…

leetCode 455.分发饼干 贪心算法

455. 分发饼干 - 力扣(LeetCode) 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸&…

使用CreateProcess崩溃:处未处理的异常: 0xC0000005: 写入位置 0x00415652 时发生访问冲突

问题代码 if (!CreateProcess(NULL,L"pela.exe",NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)){return 0;}如果CreateProcess的第二个参数字符串是常量或者是储存在堆中的就会被写保护,崩溃。如果字符串定义到栈或者全局变量就不存在此问题了。 正确的…