Могут ли возникнуть проблемы с использованием «get» для изменения значения свойства?Javascript

Форум по Javascript
Ответить
Anonymous
 Могут ли возникнуть проблемы с использованием «get» для изменения значения свойства?

Сообщение Anonymous »

В API мне нужен простой и легкий способ установить/сбросить свойство true/false объекта. Мне пришло в голову, что я мог бы использовать инструкцию get property, чтобы изменить свойство следующим образом:

Код: Выделить всё

class TEST{
active = true;
get inactive(){
return !this.active;
}

get setInactive(){
this.active = false;
return false;
}
get setActive(){
this.active = true;
return true;
}

}
Итак, хотя технически свойства являются «получателями», названия свойств указывают на то, что они фактически устанавливают значение свойства. Кажется, что следующее работает нормально:

Код: Выделить всё

let obj = new TEST();
console.log( obj );

obj.setInactive;
console.log( obj );

obj.setActive;
console.log( obj )
генерация вывода

Код: Выделить всё

TEST { active: true }
TEST { active: false }
TEST { active: true }
Проблема, которую я могу предвидеть, заключается в том, что может существовать широко распространенное соглашение, согласно которому функция получения никогда не меняет состояние объекта, кроме как тривиальными способами. Это соглашение может привести к тому, что кто-то предположит, что он может перечислить значения всех функций-получателей, не проверяя их фактическое поведение.
Итак, существует ли соглашение о хорошей практике, позволяющее избегать такого рода использования?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»