创建动态命名的javascript对象?
如何创建动态“命名”的javascript对象 下面是一个不工作的例子,说明我正在尝试做什么,问题在于:创建动态命名的javascript对象?,javascript,jquery,Javascript,Jquery,如何创建动态“命名”的javascript对象 下面是一个不工作的例子,说明我正在尝试做什么,问题在于: "objVarName = " JavaScript[代码]: function CustomObj(pName, pAge, pColor) { this.name = pName, this.age = pAge, this.color = pColor } function createNewObj (objV
"objVarName = "
JavaScript[代码]:
function CustomObj(pName, pAge, pColor) {
this.name = pName,
this.age = pAge,
this.color = pColor
}
function createNewObj (objVarName, pName, pAge, pColor){
objVarName = new CustomObj(pName, pAge, pColor);
}
createNewObj("theFirstVarName", "Car", 10, "red" );
alert(theFirstVarName.name); // if working should alert "Car"
您可以通过更改一行来实现这一点,但我不确定您为什么要这样做:
objVarName = new CustomObj(pName, pAge, pColor);
致:
您可以通过更改一行来实现这一点,但我不确定您为什么要这样做:
objVarName = new CustomObj(pName, pAge, pColor);
致:
或者使其成为对象的一部分(如果您希望使其成为全局对象,则为您自己的
窗口之一),否则为eval
。你的问题中有一股强烈的气味。你为什么认为你需要这样做?这比返回对象更好吗var theFirstVarName=createNewObj(“Car”,10,“red”)
动态命名的全局变量是个糟糕的主意。为什么不干脆theFirstVarName=createNewObj(“Car”,10,“red”)代码>?这几乎是一样的,但更易于理解、使用和维护。因此,这是一个XY问题。要么将其作为对象的一部分(如果您希望将其设置为全局对象,则将其设置为您自己的窗口的一部分),要么将其设置为eval
。你的问题中有一股强烈的气味。你为什么认为你需要这样做?这比返回对象更好吗var theFirstVarName=createNewObj(“Car”,10,“red”)
动态命名的全局变量是个糟糕的主意。为什么不干脆theFirstVarName=createNewObj(“Car”,10,“red”)代码>?这几乎是一样的,但更容易理解、使用和维护。因此,这是一个XY问题。有时,你能给某人的最好帮助是不告诉他们如何做他们认为他们需要做的事情。但是你在哪里停下来?当然,我们可以看看他的代码,指出不止一个问题,我们可以完全重新设计所有问题。即使是完美的,我们也可以这样做。他问了一个具体的问题,所以一个具体的答案是预期的。如果这一策略后来似乎不太奏效,我相信我们可以期待一个新的问题;-)可能在给出大多数情况下确实不应该使用的解决方案之前停止。初学者(包括未来的读者)倾向于使用第一个似乎“有效”的解决方案,并因此而在很长一段时间内编写糟糕的代码。一个正确的答案并不一定是一个好的答案。有时候,你能给别人的最好帮助就是不要让他们知道如何去做他们认为他们需要做的事情。但是你该在哪里停下来呢?当然,我们可以看看他的代码,指出不止一个问题,我们可以完全重新设计所有问题。即使是完美的,我们也可以这样做。他问了一个具体的问题,所以一个具体的答案是预期的。如果这一策略后来似乎不太奏效,我相信我们可以期待一个新的问题;-)可能在给出大多数情况下确实不应该使用的解决方案之前停止。初学者(包括未来的读者)倾向于使用第一个似乎“有效”的解决方案,并因此而在很长一段时间内编写糟糕的代码。正确的答案不一定是好答案。