Javascript 对象构造函数

标签 javascript socket.io

我对 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/

相关文章:

javascript - Highcharts 24 小时时钟

ios - App Transport Security 已阻止明文 HTTP 资源

node.js - 如何检测最近两分钟未触发的事件

javascript - 管理socket.io中的用户

javascript - Node.js 请求随机开始挂起,直到服务器重启才会清除

Javascript keydown 函数不能同时注册两个键

javascript - 如何使用 pickadate.js 创建时间段?

javascript - HyperLink 上带参数的 Js 函数调用

javascript - 从 dom-repeat 访问元素的属性

node.js - 如何删除 socket.io 中的房间