Я ожидаю, что мой пользовательский класс будет иметь внутреннюю ошибку рекурсии при использовании средств доступа, но этJavascript

Форум по Javascript
Ответить
Anonymous
 Я ожидаю, что мой пользовательский класс будет иметь внутреннюю ошибку рекурсии при использовании средств доступа, но эт

Сообщение Anonymous »

Прежде чем мы начнем, я работаю на сервере webpack-dev-server и создаю приложение для создания списка дел. Моя цель – улучшить понимание того, как ведут себя средства доступа, чтобы я мог стандартизировать свой стиль письма с помощью классов.
Теперь фрагмент ниже показывает, как я настраиваю свой класс User:

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

export class User {
name; //public field

constructor(name, id = crypto.randomUUID(), xp = 0) {
this.id = id;
this.name = name;
Object.assign(this, createExpHolder(xp), createProjectHolder(), createTaskHolder());
}

get name() {
return this.name;
}

set name(name) {
this.name = name;
}

}

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

const user = new User("StackOverflow");
console.log(user.name); //prints StackOverflow and no errors
На первый взгляд можно было подумать, что этот код вернет ошибку из-за переполнения стека. И я удивлен, что этого не произошло. Всякий раз, когда я изменяю имя экземпляра, это не вызывает ошибки и работает нормально! Это из-за сервера разработки? Вебпак справится с этим? Это особенность движка JavaScript?
Я провел исследование, чтобы найти объяснение в MDN, и множество ИИ объяснили это для меня, но решение/ответ, который они дали, заключалось в использовании частного поля или соглашения об именовании с подчеркиванием.
Это проблема для меня, потому что я хочу стандартизировать свой стиль письма с помощью классов. И если я привык к этой схеме, в будущем у меня может возникнуть технический долг.

Подробнее здесь: https://stackoverflow.com/questions/797 ... sors-but-i
Ответить

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

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

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

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

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