假设我们需要动态构建插件调用,例如
$('#myDiv').myPlugin({a:'a',b:'b'});
将是这样的:
function funcCallBuilder(selector, func, opts){
//dynamically construct plugin call here
}
使用:
funcCallBuilder('#myDiv', 'myPlugin', {a:'a',b:'b'});
有人能指出正确的方法吗?
答案 0 :(得分:4)
不确定我是否真的理解这个问题,但如果您只是希望您的第一个和第三个代码段具有相同的效果,请使用apply:
function funcCallBuilder(selector, func, opts){
func.apply($(selector), [opts]);
}
或者,如果你真的想把这个函数作为一个字符串而不是一个函数对象传递(没多少点恕我直言):
function funcCallBuilder(selector, func, opts){
$.fn[func].apply($(selector), [opts]);
}