Я получал ошибки максимального размера стека с исходной версией моего класса (без подчеркивания), и когда я просмотрел его, я увидел несколько примеров, которые включали добавление подчеркивания к свойству класса при ссылке на него в методе получения/установки; прежде чем слишком увлекаться чем-то еще, что было рекомендовано, я просто добавил символы подчеркивания и запустил программу, и это само по себе решило проблему. Как это работает? Что делает подчеркивание в этом контексте? Насколько я понимаю, это предотвращает перегрузку стека от повторного вызова установщика в рекурсивном бесконечном цикле, но как это достигается добавлением подчеркивания?
Для справки: я использую синтаксис ES6 в приложении Node.js.
Оригинал:
set serialNumber(serialNumber) {
this.serialNumber = serialNumber;
}
Исправлено:
set serialNumber(serialNumber) {
this._serialNumber = serialNumber;
}