我正在尝试返回一个插件的多方法。
结构如下所示。如果我应用多个方法,比如:
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()
这个是可能的吗?
发布于 2013-01-03 15:18:10
在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());
https://stackoverflow.com/questions/14133631
复制相似问题