我想清理一些旧代码并对其进行优化,通常使用相同的代码。 (只能调用不同的函数名称)
我做了一个更简单的例子,不,我不会写游戏。但是这个例子对我的问题的解释看起来更容易理解。
character.sleep(1);
character.changeName(name);
character.useItm(1423);
更简单的例子:
object.function(parameters)
目标是这样的:
myFunc(funcName,value) {
character.{funcName}(value);
}
$('.btn_sleep') { myfunc('sleep','1'); }
$('.btn_cName') { myfunc('changeName','Harold'); }
$('.btn_uItem') { myfunc('useItem','1423'); }
首先我想使用eval(),因为没有用户输入会接近这个函数。但由于性能损失,我不喜欢这个想法。
然后我四处寻找替代方案,并找到 window [] 和 new function()作为解决方案。
但是我想知道如何使用它,当我想在对象符号中通过名称动态调用函数时。 (或者在更糟糕的情况下,当您从函数中获取if-condtion的结果时,您使用对象表示法调用该函数。)
有人可以帮忙吗?
答案 0 :(得分:0)
我知道如何动态调用函数的最佳方法是使用括号表示法,因为它允许您使用变量设置对象路径
function myFunc(funcName,value) {
character[funcName](value);
}
myfunc('sleep','1');