1

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

结构如下图。如果我应用不止一种方法,例如:

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

这可能吗?

4

1 回答 1

2

在 javascript 中,您只能从函数返回一个对象。所以,return ob[a].apply(), ob[b].apply();行不通。

您可以返回包含这些值的对象。您可能对如何动态合并两个 JavaScript 对象的属性感兴趣?.

动态组合对象的替代方法是稍微调整代码的工作方式:

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());
于 2013-01-03T07:18:09.503 回答