/, .
, :
var obj = {
_a:0,
get a(){ return this._a;},
set a(value){this._a+=value;}
}
obj.a = 5;
obj.a = 7;
obj.a
12
, -,
, getter , setter .
If you need a simple property, just use
{a:0}
instead
{_a:0,get a(){return this._a;},set a(v){this._a=v;}}
Another snippet with js 'privates':
function Obj(key) {
var private = 0;
var authorized = false;
return {
set token(v) {authorized = (v===key);},
set data(v) {if(authorized) private = v;}
get data() {return authorized?private:undefined;}
}
}
obj = new Obj('pass');
obj.data = 5;
obj.token = 'pass';
obj.data = 'Data';
source
share