对象——选择器属性和属性的特性

1.选择器属性:关键字get和set设置,若只具有get方法则为只读属性;若set和get方法均存在,则是读/写属性。

    例如:

 var obj={
          x:1,//普通的可读写数据属性
          //r为可读写的存取器属性
          get r(){return this.x;},
          set r(value){this.x=value;}
         };
 console.log(obj.x);//1
 obj.r=100;
 console.log(obj.r);//100
2.属性的特性:值(value)、可写性(writable)、可枚举(enumerable)、可配置(configurable)。

   在ECMAscript5中定义了一个属性描述符对象来代表这四个特性。

   (1).通过Object.getOwnPropertyDescriptor()方法可以获取某个对象特定属性的描述符(属性仅仅限于自有属性)。

   例如:

 var obj={x:1}
 console.log(Object.getOwnPropertyDescriptor(obj,"x"));
 //{value=1,writable=true,enumerable=true,configurable=true}
 console.log(Object.getOwnPropertyDescriptor(obj,"y"));//undefined,属性不存在
 console.log(Object.getOwnPropertyDescriptor(obj,"toString"));//undefined,属性为继承属性
  (2).Object.defineProperty()方法可以修改对象属性的特性(前提是该属性是可配置的)。

  例如:

 var obj={x:1};
 //将obj的x属性设置为不可写的
 Object.defineProperty(obj,"x",{value:100,
                                writable:false,
                                enumerable:true,
                                configurable:true                              
                                 });
 console.log(obj.x);//100
 obj.x=111;
 console.log(obj.x);//100



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值