我知道PHP有call_user_func
,我只是想知道如果JavaScript从一开始类似的东西,在这里我要调用该方法,例如: object.set$fieldID($fieldValue)
我宁愿不办理的if / else /开关块只是正确执行的一行代码。
如果有帮助,我使用jQuery。
我知道PHP有call_user_func
,我只是想知道如果JavaScript从一开始类似的东西,在这里我要调用该方法,例如: object.set$fieldID($fieldValue)
我宁愿不办理的if / else /开关块只是正确执行的一行代码。
如果有帮助,我使用jQuery。
object["set" + $fieldID]($fieldValue);
一些阅读材料上面: 会员运营商的MDC 。
一些先进的方法包括Function.prototype.call
和Function.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]);
第一个参数必须被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']();