Я читал this вопрос только для чтения свойств, и я пришел на этот фрагмент:Объект только для чтения свойства
var myObject = {
get readOnlyProperty() { return 42; }
};
alert(myObject.readOnlyProperty); // 42
myObject.readOnlyProperty = 5; // Assignment is allowed, but doesn't do anything
alert(myObject.readOnlyProperty); // 42
Теперь, я знаю, чтобы скрыть масштабы, вы можете использовать IIFE, также сделать переменную или свойство «частным», но я не понимаю:
Почему разрешено назначение, и если это разрешено, как ничего не может случиться? В этом фрагменте нет предполагаемой области видимости, поэтому я не понимаю, как что-то в JS может вывести частную собственность.
Это не «частный», он использует ключевое слово «получить» для запуска функции, которая возвращает значение всякий раз, когда вы ссылаетесь на свойство. –
Добавьте функцию 'set readOnlyProperty()', которая выдает ошибку для предотвращения назначения. – Barmar
Не мог ли пользователь просто определить метод сеттера и переопределить этот аспект только для чтения? –