所以我现在有点需要这样的东西了,但是却一直找不到适合自己需求的东西,很可能是我在搜索错误的东西!
我的目标是从foobar(“ test”)之类的函数中放入一个参数,并将该参数加上该函数中的一些预写字符串,然后将它们加在一起,从而成为一个预先存在的变量... >
我认为我的解释很差...但是希望代码示例能得到更好的解释...
我尝试了一些简单的事情,这些事情显然是行不通的,所以我很可能不需要证明自己做了什么...
var text1 = "this is text"
function foo(id) {
object.innerHTML = "text" + 1 // Then plus those together and make it set it to the variable text1
}
foo(1)
预期:我希望它在对象“ this is text”中写入内容,因为它使text和id变量又名1变为text1,后者是带有“ this is text”字符串的变量
实际结果:显然,这是行不通的,我什至不需要写它就能发现这行不通...只是一个更好地解释的例子...
希望您能提供帮助,谢谢!
答案 0 :(得分:1)
var text1 = "this is text"
function foo(id) {
object.innerHTML = window['text'+id];}
foo(1)
答案 1 :(得分:0)
您必须使用评估功能。
var text1 = "this is text"
var text2 = "this is text2"
function foo(id) {
console.log(eval('text'+id));
}
foo(2)
答案 2 :(得分:0)
正如我在评论中解释的那样,从表面上考虑问题会导致建议通常不必要且容易出错的事情,因此应该避免。
还有更多可读性更高的替代方法,例如创建对象并使用其键和[]
表示法:
var texts = {
example: "this is text",
message: "Hello World!"
};
function foo(id) {
someDiv.innerHTML = texts[id];
}
foo("message");
<div id="someDiv"></div>