前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解Object.defineProperty()

理解Object.defineProperty()

原创
作者头像
IT工作者
发布2022-02-22 19:17:43
2160
发布2022-02-22 19:17:43
举报
文章被收录于专栏:程序技术知识

方法说明:

用来定义或修改对象的属性。

共3个参数都是必须的:obj-目标对象、newKey-属性名、{}-属性特性

给对象的属性添加特性描述(第三个参数),目前提供两种形式:数据描述和存取器描述。

数据描述:

代码语言:javascript
复制
Object.defineProperty(obj,"newKey",{
  value:"hello", // 设置属性的值
  writable:false, // 值是否可以重写。true | false
  enumerable:false, // 目标属性是否可以被枚举。true | false(使用for...in或Object.keys())
  configurable:false // 目标属性是否可以被删除或是否可以再次修改特性 true | false
});

存取器描述: 注:当使用了getter或setter方法,不允许使用writable和value这两个属性

代码语言:javascript
复制
var obj = {};
var initValue = 'hello';
Object.defineProperty(obj,"newKey",{
    get:function (){
        //当获取值的时候触发的函数
        return initValue;    
    },
    set:function (value){
        //当设置值的时候触发的函数,设置的新值通过参数value拿到
        initValue = value;
    }
});
//获取值
console.log( obj.newKey );  //hello

//设置值
obj.newKey = 'change value';

console.log( obj.newKey ); //change value

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档