我知道 PHP 有call_user_func
,我只是想知道 JavaScript 是否有类似的东西,我想调用的方法在哪里,例如:object.set$fieldID($fieldValue)
我宁愿不通过 if/else/switch 块来正确执行一行代码。
如果有帮助,我正在使用 jQuery。
我知道 PHP 有call_user_func
,我只是想知道 JavaScript 是否有类似的东西,我想调用的方法在哪里,例如:object.set$fieldID($fieldValue)
我宁愿不通过 if/else/switch 块来正确执行一行代码。
如果有帮助,我正在使用 jQuery。
object["set" + $fieldID]($fieldValue);
一些高级方法包括Function.prototype.call
和Function.prototype.apply
。第一个在某种程度上等同于 PHP call_user_func()
,而后者在某种程度上等同于 PHP 的call_user_func_array()
.
PHP 的函数和 JavaScript 的区别在于 JavaScript 允许您在另一个对象的上下文中调用某个对象的方法。这是通过使用 and 的第一个参数来完成call()
的apply()
。
上面示例的等价物,但使用call()
andapply()
看起来像这样:
object["set" + $fieldID].call(object, $fieldValue);
object["set" + $fieldID].apply(object, [$fieldValue]);
第一个参数必须是,否则在浏览器的情况下,object
该方法将使用this
绑定到全局对象的指针执行。window
@lonut 是正确的。更一般地说,如果你想调用不属于显式对象的函数(例如:全局),你可以在window
对象上调用它们:
var foo = function() { alert(1); };
window['foo']();
因为所有对象都包含在window
.
另一个例子:
var object = function() { this.method = function() { alert(2); }; }
var instance = new object();
window['instance']['method']();