Как ссылаться на объект класса?

Kleo спросил: 28 марта 2018 в 04:34 в: javascript

Предположим, что следующий класс:

class Player{
 constructor(id,name){
  this.id=id;
  this.name=name;
 }
}

Если я хотел бы создать экземпляр класса, я бы пошел о var player = new Player(1,'Mike'), а затем я мог получить доступ к значениям с помощью точки обозначение, например player.name. Я пытаюсь использовать итерацию, чтобы сгенерировать несколько игроков и добавить их в массив, а часть кода:

let player =[];
player.push( playerName = new Player(id,playerName));

Если вставить var infront из playerName, то есть player.push( playerName = new Player(id,playerName); он выдает ошибку. В настоящее время единственным способом получить доступ к имени будет player[0].name, что не удобно. Как еще я могу сделать код так, чтобы создать переменную Object, как в примере выше?

1 ответ

Quentin ответил: 28 марта 2018 в 04:38

Просто используйте два отдельных утверждения. Это делает код более понятным.

let player_list = [];
for (some ... loop) {
   let some_player = new Player(id,playerName);
   player_list.push(some_player);
   do_something_else_with(some_player);
}
Kleo ответил: 28 марта 2018 в 04:49
это не будет работать, как он выдает следующее сообщение об ошибке Uncaught SyntaxError: Identifier 'playerName' has already been declared
Quentin ответил: 28 марта 2018 в 04:50
@Kleo - Какая ошибка, вы не смогли включить ее. (Я надеюсь, что вы не ссылаетесь на очевидный заполнитель some ... loop, который вы должны заменить условием реального цикла).
Quentin ответил: 28 марта 2018 в 04:54
@Kleo - Он не ... он вообще не объявляет playerName. Вы, должно быть, изменили это как-то.
Boaz ответил: 28 марта 2018 в 04:54
@Kleo Код в ответе - только пример. Он даже не определяет playerName. Ошибка предполагает, что полный код объявляет playerName более одного раза. Если вы пробуете это в какой-то консоли, это распространенная ошибка.
Kleo ответил: 28 марта 2018 в 04:57
Нет, я не имею в виду это. Часть кода будет циклом for, а в другом случае - вызовом функции. Вот код