ES6 getter setter

#getter 通常在访问对象属性时,如果该属性是个方法,那得需要调用并执行该方法才能获得需要的数据。有时候希望访问属性时能返回一个动态计算后的值.所以此时getter就起到作用了。 首先先看一个例子: 在对象实例化的时候创建一个虚拟属性getName

let obj = {
    get getName () {
        return 'test'
    },
    name: function () {
        return 'xxx'
     }
    name: functio
}
console.log(obj.getName);
console.log(obj.name());

注意,试图赋给latest新值的话不会改变该值.

#setter set 语法可以将一个函数绑定在当前对象的指定属性上,当那个属性被赋值时,你所绑定的函数就会被调用。在 javascript 中,如果试着改变一个属性的值,那么对应的 setter 将被执行。setter 经常和 getter 连用以创建一个伪属性。一个拥有真实值的属性就不能再有 setter 了。

let ex = 'foo';
let obj = {
    str = "test"
    set [ex] (v) {this.str = v}
}
console.log(obj.str) //test
obj.ex = 'change' 
console.log(obj.str) //  change

随时给对象创建getter setter属性

Object.defineProperty

Object.defineProperty(obj, '属性名',{get: fn})

defineGetter

obj.defineGetter('属性名',fn) ###删除getter delete obj.xxx

转载于:https://my.oschina.net/xinranzhou/blog/834163

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值