在运行时构造javascript变量名

chi*_*ior 1 javascript

someFunction(link) {
  someOtherFunction('div' + link);
}
Run Code Online (Sandbox Code Playgroud)

通过调用someFunction("Test"),字符串"divTest"将传递给someOtherFunction().但是我希望传递变量"divTest"的值.

怎么办?

sth*_*sth 10

使变量成为对象的成员.然后,您可以使用[]字符串来访问对象成员:

var byname = {
  divabc: ...,
  divxyz: ...
};

function someFunction(link) {
  someOtherFunction(byname['div'+link]);
}

someFunction('abc'); // calls someOtherFunction(byname.divabc)
Run Code Online (Sandbox Code Playgroud)


Ion*_*tan 8

对于这种动态构造/访问变量名称,您应该使用替代对象表示法,其中:

object.member === object["member"]
Run Code Online (Sandbox Code Playgroud)

这样,您可以将变量名称构造为字符串,并在方括号内使用它来访问对象成员.