我对 Javascript 略知一二,但仍在摸索中。我看到了有关使用 Socket.IO 的 Javascript 的教程。我试图跟进,但对这个带有标题在线代码的 Javascript 构造函数感到有点困惑。我以前没见过这种格式。这相当于我在下面写的代码吗?使用 var self = {...} 方法创建构造函数是否合适?
//Online code
//-------------------------
var Player = function(id){
var self = {
x:250,
y:250,
id:id
}
return self;
}
//Equivalent?
//------------------------
var Player = function(id){
var self = this;
this.x = 250;
this.y = 250;
this.id = id;
}
最佳答案
如果你创建了一个构造函数,你可以重复使用它,任何人都可以创建一个实例。 如果您创建一个新对象,则只能使用该对象。
var Player = function(id){
var self = this;
this.x = 250;
this.y = 250;
this.id = id;
}
const player = new Player(id)
在这种情况下,属性是对象的一部分,因此,每个 Player 都会拥有它们
如果你返回一个对象,比如:
var Player = function(id){
var self = {
x:250,
y:250,
id:id
}
return self;
}
这个值将被分配给调用该方法的人,但实例将是一个空对象
关于Javascript 对象构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988182/