Мне показалось, что я понял назначение функций get и set в методах доступа. Но в учебнике (W3Schools) они приводят этот пример. Обратите внимание, что первые три get
, а последние два set
. Почему они не все set
, если мы пытаемся мутировать counter
?
// Define an object
var obj = {counter:0};
// Define Setters and Getters
Object.defineProperty(obj, "reset", {
get : function () {this.counter = 0;}
});
Object.defineProperty(obj, "increment", {
get : function () {this.counter++;}
});
Object.defineProperty(obj, "decrement", {
get : function () {this.counter--;}
});
Object.defineProperty(obj, "add", {
set : function (value) {this.counter += value;}
});
Object.defineProperty(obj, "subtract", {
set : function (value) {this.counter -= value;}
});