setter & getter

Tags
javascript
Created
Jan 26, 2016 1:24 PM

accessor

https://segmentfault.com/a/1190000003882976

Object.defineProperty(this,"b",{

get: function () {

return this.a;

},

set : function (val) {

this.a = val;

},

configurable : true

});

可以直接在对象中定义这样的属性:

function C() {

return {

a: 1,

get b () {

return 2;

},

set b (val) {

this.a = val;

}

}

}

c = C();

也可以在ES6类中直接定义:

class C {

constructor(props) {

this.a = 1;

}

get b () {

return 2;

};

set b (val) { // 这里不是 function 写法,所以语法限制 val 必填

this.a = val;

}

c = 2;

}

c = new C();

在类中只要定义其中一个,另一个不会在父类上继承

但是不能在函数中直接定义!!!

SuperMade with Super