当我只想调用函数时,eval()的更安全的替代方法是什么?

Wil*_*gan 3 javascript eval

我知道PHP有call_user_func,我只是想知道JavaScript是否有类似的东西,我要调用的方法是,例如:object.set$fieldID($fieldValue)

我宁愿不通过if/else/switch块来正确执行一行代码.

如果它有帮助,我使用jQuery.

Ion*_*tan 9

object["set" + $fieldID]($fieldValue);
Run Code Online (Sandbox Code Playgroud)

一些阅读材料上面:会员运营商MDC.

一些先进的方法包括Function.prototype.callFunction.prototype.apply.第一个在某种程度上等同于PHP,call_user_func()而后者在某种程度上等同于PHP call_user_func_array().

PHP的函数和JavaScript之间的区别在于JavaScript允许您在另一个对象的上下文中调用某个对象的方法.这是通过使用的第一个参数做call()apply().

以上示例的等效项,但使用call()apply()看起来像这样:

object["set" + $fieldID].call(object, $fieldValue);
object["set" + $fieldID].apply(object, [$fieldValue]);
Run Code Online (Sandbox Code Playgroud)

第一个参数必须是object否则在浏览器的情况下,将使用this绑定到全局对象的指针执行该方法window.