gpt4 book ai didi

Javascript - 添加具有不同值的相同属性

转载 作者:行者123 更新时间:2023-11-30 17:43:33 25 4
gpt4 key购买 nike

重要:代码有效,所以这更像是“这是正确的方法吗?”问题。

我试图在一个函数中向我的对象属性添加不同的值,然后将其推送到一个数组。对象属性应保持不变,但名称应更改。

输出:

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){

关于Javascript - 添加具有不同值的相同属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20587555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com