构造函数

function Person( name){
  Object.defineProperty(this, "name"{
    get :function(){
       return name;
    },
     set:function (newName){
      name =newName;
    },
    enumerable :true, //可枚举,默认为false
    configurable:true //可配置
   });
}  
 var p1=new Person('John'); 
 console.log(p1.name) //John
 console.log(p1 == '尼玛') //尼玛

Object.defineProperty

var a= {}
Object.defineProperty(a,"b",{
  value:123
})
console.log(a.b);//123
传入的参数
第一个参数:目标对象
第二个参数:需要定义的属性或方法的名字。
第三个参数:目标属性所拥有的特性。(descriptor)
descriptor
value:属性的值(不用多说了)
writable:如果为false,属性的值就不能被重写,只能为只读了
configurable:总开关,一旦为false,就不能再设置他的(value,writable,configurable)
enumerable:是否能在for...in循环中遍历出来或在Object.keys中列举出来

nima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值