在运行时构造javascript变量名
通过调用someFunctionTest,字符串divTest被传递给someOtherFunction。但是我希望通过变量divTest的值在运行时构造javascript变量名,javascript,Javascript,通过调用someFunctionTest,字符串divTest被传递给someOtherFunction。但是我希望通过变量divTest的值 如何做到这一点?您应该能够通过函数实现这一点。您应该能够通过函数实现这一点。正如wybiral所说,您所需要的只是评估: someFunction(link) { someOtherFunction('div' + link); } 它所做的基本工作是将字符串的内容作为代码进行计算。显然,eval是一个危险的小工具,因为它允许执行任意代码,所以在使
如何做到这一点?您应该能够通过函数实现这一点。您应该能够通过函数实现这一点。正如wybiral所说,您所需要的只是评估:
someFunction(link) {
someOtherFunction('div' + link);
}
它所做的基本工作是将字符串的内容作为代码进行计算。显然,eval是一个危险的小工具,因为它允许执行任意代码,所以在使用它时要小心。正如wybiral所说,您只需要eval:
someFunction(link) {
someOtherFunction('div' + link);
}
它所做的基本工作是将字符串的内容作为代码进行计算。显然,eval是一个危险的小工具,因为它允许执行任意代码,所以在使用它时要小心。对于这种动态构造/访问变量名,您应该使用替代对象表示法,其中:
someFunction(link) {
someOtherFunction(eval('(div' + link + ')');
}
通过这种方式,您可以将变量名构造为字符串,并在方括号内使用它来访问对象成员。对于这种动态构造/访问变量名,您应该使用替代对象表示法,其中:
someFunction(link) {
someOtherFunction(eval('(div' + link + ')');
}
通过这种方式,您可以将变量名构造为字符串,并在方括号内使用它来访问对象成员。eval将这样做,但当您想要合成这样的标识符时,它通常表示程序存在其他一些问题。正如Ionut所说,最好使用[]符号。每当出现这样的问题时,我都会链接到。eval会这样做,但当您想要合成这样的标识符时,它通常表示程序存在其他一些问题。正如Ionut所说,最好使用[]符号。每当出现这样的问题时,我都会链接到。使变量成为对象的成员。然后,您可以使用[]使用字符串访问对象成员:
object.member === object["member"]
使变量成为对象的成员。然后,您可以使用[]使用字符串访问对象成员:
object.member === object["member"]
试试这个:
var byname = {
divabc: ...,
divxyz: ...
};
function someFunction(link) {
someOtherFunction(byname['div'+link]);
}
someFunction('abc'); // calls someOtherFunction(byname.divabc)
试试这个:
var byname = {
divabc: ...,
divxyz: ...
};
function someFunction(link) {
someOtherFunction(byname['div'+link]);
}
someFunction('abc'); // calls someOtherFunction(byname.divabc)
你能解释一下最里面的一组括号背后的逻辑吗?RyOnLife:在本例中,它们没有任何特定的用途,但最好将所有的求值字符串放在括号中。原因如下:你能解释一下最里面的一组括号背后的逻辑吗?RyOnLife:在本例中,它们没有任何特定的用途,但最好将所有的求值字符串放在括号中。原因如下: