我正在尝试为插件返回多种方法。
结构如下。如果我应用多种方法,例如:
return ob[a].apply(), ob[b].apply();
将返回错误。请指教!!非常感谢!!
ob = {
a: function(){ return{ A: function(){ } }},
b: function(){ return{ B: function(){ } }},
}
$.fn.plugin = function(){
return ob[a].apply();
}
$(el).plugin().A()
我想要,返回2方法a和b然后我可以使用插件
$(el).plugin().A()
$(el).plugin().B()
这可能吗?
答案 0 :(得分:2)
在javascript中,您只能从函数返回一个对象。
因此,return ob[a].apply(), ob[b].apply();
无效。
您可以返回包含这些值的对象。您可能对How can I merge properties of two JavaScript objects dynamically?感兴趣。
动态组合对象的另一种方法是调整代码的工作方式:
ob = {
a: function(){ return function(){ return 'a'; } },
b: function(){ return function(){ return 'b'; } },
}
function myPlugin() {
var rv = new Object();
rv['a'] = ob['a'].apply();
rv['b'] = ob['b'].apply();
return rv;
}
var o = myPlugin();
alert(o.a());
alert(o.b());