ES5的getter与setter
在ES5中新增了一个Object.defineProperty,直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
Object.defineProperty(obj, prop, descriptor)
其接受的第三个参数可以取get和set并各自对应一个getter和setter方法:
var a = { zhihu:0 }; Object.defineProperty(a, 'zhihu', { get: function() { console.log('get:' + zhihu); return zhihu; }, set: function(value) { zhihu = value; console.log('set:' + zhihu); } }); a.zhihu = 2; // set:2 console.log(a.zhihu); // get:2 // 2
https://www.zhihu.com/question/44724640

浙公网安备 33010602011771号