海事网站服务平台,微信5000人接推广费用,百度网站打不开,游戏制作公司给对象添加属性的方法有许多#xff0c;这次让我为大家介绍一种给对象添加属性的静态方法吧#xff01; 语法#xff1a;Objcet.defineProperty(对象的名称#xff0c;“添加的键名”#xff0c;{value#xff1a;键值}) const obj {name:张三,age:18}// 我…给对象添加属性的方法有许多这次让我为大家介绍一种给对象添加属性的静态方法吧 语法Objcet.defineProperty(对象的名称“添加的键名”{value键值}) const obj {name:张三,age:18}// 我们给obj添加一个新属性Object.defineProperty(obj,hobby,{value:打篮球})console.log(obj);可以看到我们成功添加了一个属性 这种静态方法还可以玩 我们添加了这个属性我们可以控制这个属性能否被修改能否被删除能否被循环 我为大家介绍一下以下三个方法 writable:布尔值如果为true就是能被修改为false不能被修改 configurable:布尔值如果为true就是能被删除为false不能被删除 enumerable:布尔值如果为true就是能被循环为false不能被循环 const obj {name:张三,age:18}// 我们给obj添加一个新属性,可修改,不可删除,不可循环Object.defineProperty(obj,hobby,{value:打篮球,writable:true,configurable:false,enumerable:false})obj[hobby] 踢足球//修改成功delete obj[hobby]//删除失败for(let k in obj) {console.log(obj[k]);//不能循环到hobby}console.log(obj);getter与setter const obj { name: 张三, age: 18 }// 我们给obj添加一个新属性,可修改,不可删除,不可循环Object.defineProperty(obj, hobby, {get() {console.log(获取了)// 返回一个篮球return 篮球},set(val) {console.log(被修改了)// 修改后val为足球console.log(val)}})// 获取obj[hobby]console.log(obj)// 修改后val为足球obj[hobby] 足球console.log(obj)来看第一次打印的对象 来看第二次打印的对象 我们发现hobby的属性值没有被修改 这是一个注意点
感谢大家的阅读如有不对的地方可以向我提出感谢大家