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

你可能感兴趣的:(javascript,ViewUI)