示例:
var demo = {
run: function(a){
},
a:function(test){
},
b:function(test){
}
}
//传入a就执行this.a(参数)
demo.run(a,参数);
疑问:
感觉用数字挨个判断好不科学,所以我希望是直接传入方法名,就能给我返回该方法的实例,求指教下该如何实现呢?原生的或者jquery都行、先O(∩_∩)O谢谢了
示例:
var demo = {
run: function(a){
},
a:function(test){
},
b:function(test){
}
}
//传入a就执行this.a(参数)
demo.run(a,参数);
疑问:
感觉用数字挨个判断好不科学,所以我希望是直接传入方法名,就能给我返回该方法的实例,求指教下该如何实现呢?原生的或者jquery都行、先O(∩_∩)O谢谢了
var obj = {
run: function() {
var method = arguments[0];
if(!method) return;
var arglist = Array.prototype.slice.call(arguments, 1);
return this[method].apply(this, arglist);
},
aaa: function() {return 1;},
bbb: function() {return 2;},
ccc: function(var1) {return var1},
ddd: function(var1, var2){return var1 + var2}
};
obj.run("aaa"); // 1
obj.run("bbb"); // 2
obj.run("ccc", 3); // 3
obj.run("ddd", 4, 5); // 9
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
这不就是典型的策略模式吗...