js为插件返回多种方法.apply()

时间:2013-01-03 05:40:14

标签: javascript plugins methods return return-value

我正在尝试为插件返回多种方法。

结构如下。如果我应用多种方法,例如:

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()

这可能吗?

1 个答案:

答案 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());