我想像这样的代码那样以动态方式在JavaScript代码中使用函数。
const function1 = (param) => {
return "AA" + param
}
const function2 = (param) => {
return "BB" + param
}
const function3 = (param) => {
return "CC" + param
}
for (let i=1; i < 4; i++) {
// call function1, 2, 3 with i
}
我在python中看到了类似的情况。
note1 = "note1"
note2 = "note2"
note3 = "note3"
for i in range(1, 4):
print(vars()[f"note{i}"])
像这种python案例一样,有没有一种方法可以用动态名称处理javascript变量或函数?
答案 0 :(得分:2)
您可以这样做:
在非严格模式下在任何函数之外创建的任何函数都将变为默认的this
(窗口)。因此,您可以以window[ propertyName ]
的身份访问它。但是,污染窗口对象是一种不好的做法。因此,更好的选择是将这些函数包装在自定义对象中,然后使用相同的语法访问函数。
const function1 = (param) => {
return "AA" + param
}
const function2 = (param) => {
return "BB" + param
}
const function3 = (param) => {
return "CC" + param
}
for (let i=1; i < 4; i++) {
window[`function${i}`](i);
}