如何在Javascript中命名匿名对象?

如何在Javascript中命名匿名对象?,javascript,class,object,Javascript,Class,Object,我的部分代码通过以下代码创建了一个播放器类的多个实例: player.push(new Player(i, positions[randomPosPlayer])); 因此,我没有使用传统的方法,即var somePlayer=newplayer(x,y) 假设创建了3个玩家,所有玩家都显示为匿名对象。在维护每个对象的键值的同时,我如何命名它们?我不知道您是否在使用custructor函数或es6类语法,但无论哪种方式,您都可以通过以下方式在其构造函数中“命名”玩家: let allPlaye

我的部分代码通过以下代码创建了一个播放器类的多个实例:

player.push(new Player(i, positions[randomPosPlayer]));
因此,我没有使用传统的方法,即
var somePlayer=newplayer(x,y)

假设创建了3个玩家,所有玩家都显示为匿名对象。在维护每个对象的键值的同时,我如何命名它们?

我不知道您是否在使用custructor函数或es6类语法,但无论哪种方式,您都可以通过以下方式在其构造函数中“命名”玩家:

let allPlayers = {};
function Player(x,y,name){
   if(name)allPlayers[name] = this;
   //...other constructor stuff
}
创建时只需传递名称:

player.push(new Player(i, positions[randomPosPlayer],"CustomName"));
然后你可以简单地使用

let p = allPlayers["CustomName"];
或者,如果您确定存在具有此名称的玩家,甚至可以直接访问该属性:

let p = allPlayers.CustomName;

如果您以后不引用对象,您想用它来完成什么?引用对象的任何变量只引用内存中的某个位置,而无论是否有独立变量引用该位置,该位置都将存在(假设该位置未获得GC'd)它们将被放置在一个多维数组中,稍后将被引用,以便每个玩家在数组板上移动,并且为了更清晰的代码,我希望显示玩家的名称。听起来你应该将玩家所需的名称传递给构造函数。。?这样,您就可以(例如)在需要时访问
.name
属性