重要提示:该代码有效,因此,更多的是“这是正确的方法吗?” 题。
我试图将不同的值添加到函数中的对象属性中,然后将其推入数组。对象属性应保持不变,但名称应更改。
输出:
Object {
clientId="cXbHV32Sz0gh-10Mo6DX",
userName="Foo"
},
Object {
clientId="J3ZkTsK6ixTM6pUBo6DY",
userName="bar"
我只能通过以下解决方案实现它:
var clientObj = function (clientId, userName){
var that = this;
this.clientId = clientId;
this.user
}
function myFunc(socket.id, userName){
var clientInfo = new clientObj(socket.id, userName)
clientList.push(clientInfo)
}
我想知道我是否真的需要在这里有一个构造函数,该构造函数除了保存我的属性外什么也不做。
那如何不使用构造函数就可以实现呢?
我想到了这样的东西(但这只会替换值):
var ClientObj = {}
function myFunc(socketId, userName){
ClientObj['socketID'] = socketID
ClientObj['userName'] = userName
clientList.push(clientObj)
}
抱歉,这可能有点令人困惑
只是一些小事情。您的that
变量目前无用。通常,当您需要在Ajax回调中保留对对象的引用时,会使用类似的东西。
由于clientObj是构造函数,因此应大写。
考虑将clientObj设为函数声明,以便将其吊起,这对您可能并不重要。
所以也许像这样
function ClientObj(clientId, userName){
this.clientId = clientId;
this.user = userName;
}
同样,这是无效的:
function myFunc(socket.id, userName){
我认为您的意思是这样的:
function myFunc(socketId, userName){
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句