Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时构造javascript变量名_Javascript - Fatal编程技术网

在运行时构造javascript变量名

在运行时构造javascript变量名,javascript,Javascript,通过调用someFunctionTest,字符串divTest被传递给someOtherFunction。但是我希望通过变量divTest的值 如何做到这一点?您应该能够通过函数实现这一点。您应该能够通过函数实现这一点。正如wybiral所说,您所需要的只是评估: someFunction(link) { someOtherFunction('div' + link); } 它所做的基本工作是将字符串的内容作为代码进行计算。显然,eval是一个危险的小工具,因为它允许执行任意代码,所以在使

通过调用someFunctionTest,字符串divTest被传递给someOtherFunction。但是我希望通过变量divTest的值


如何做到这一点?

您应该能够通过函数实现这一点。

您应该能够通过函数实现这一点。

正如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:在本例中,它们没有任何特定的用途,但最好将所有的求值字符串放在括号中。原因如下: