Это вопрос о том, как работают JavaScript-получатели и сеттеры.Использование delete в JavaScript getter/setter для удаления getter/setter
Выполнение Mozilla log4j как модуля JavaScript (частичная реализация, только важные части, необходимые для предполагаемых случаев использования, например, в Firefox Sync) содержит следующее определение getter/setter.
Что делает «удаление» в геттере/сеттере для вас? Что это вообще значит? Кажется, что эффект от первого использования имеет разные результаты от следующих видов использования (но если да, то как)?
get repository() {
delete Log4Moz.repository;
Log4Moz.repository = new LoggerRepository();
return Log4Moz.repository;
},
set repository(value) {
delete Log4Moz.repository;
Log4Moz.repository = value;
},
Будет ли все еще быть геттером (или сеттером) после этого, если бы это началось именно так? Думаю, нет, теперь это будет просто ценность, не так ли? (Как вы можете определить, является ли свойство getter/setter или нет? Есть ли способ проверить/сбросить объект, который говорит, какие свойства являются getters/seters?) –