Я видел два разных способа реализации геттеров/сеттеров в шаблоне модуля. Один использует «defineProperty», а другой нет. Каковы преимущества/недостатки одного по сравнению с другим?
var MyModule = (function() {
var _val;
var api = {
get value1() {
return _val
},
set value1(value) {
_val = value
}
};
Object.defineProperty(api, 'value2', {
get: function() {
return _val;
},
set: function(value) {
_val = value
}
});
return api;
}());