如何在函数调用时将字符串转换为变量名称

How to convert string to var name at function call

本文关键字:转换 变量名 字符串 函数调用      更新时间:2023-09-26

我发现自己需要将字符串变量(在JavaScript中(转换为获取元素时调用的变量名称。我对此的自发解决方案是写:

this.name = name;
[...]
this.context.drawImage(imageRepository.(this.name), this.x, this.y);

但是,这不起作用,返回"意外令牌("。有什么建议吗?

您查找的是属性名称,而不是变量名称。您可以使用括号表示法:

imageRepository[this.name]

在 JavaScript 中,您可以通过两种方式引用属性:使用点表示法和属性名称文字 (obj.foo (,或使用括号表示法和属性名称字符串 (obj["foo"] (。在后一种情况下,字符串可以是任何表达式的结果,包括在另一个对象(this.name(上查找属性。

在这种情况下,您需要括号表示法。

imageRepository[this.name]

括号表示法计算变量并选择适当的属性。