__defineSetter__() - прив'язує властивість об'єкта до функції, що викликається кожен раз при спробі встановити значення цієї властивості.
obj.__defineSetter__(prop, fun )
prop - Рядок, що містить ім'я властивості, прив'язують до заданої функції.
fun - Функція, що викликається при спробі встановити значення зазначеного властивості.
function(val) { . . . }
Цей метод є застарілим і не стандартним, рекомендовано використовувати Object.defineProperty.
// не стандартний і застарілий спосіб
var o = {};
o.__defineSetter__('value', function(val) { this.anotherValue = val; });
o.value = 5;
console.log(o.value); // undefined
console.log(o.anotherValue); // 5
// стандарний спосіб
// використання оператора set
var o = { set value(val) { this.anotherValue = val; } };
o.value = 5;
console.log(o.value); // undefined
console.log(o.anotherValue); // 5
// використання методу Object.defineProperty()
var o = {};
Object.defineProperty(o, 'value', {
set: function(val) {
this.anotherValue = val;
}
});
o.value = 5;
console.log(o.value); // undefined
console.log(o.anotherValue); // 5