1
rrfeng 2013-05-29 22:13:23 +08:00
这不就是参数解析么?加个 if/case 就解决了嘛……
|
2
yakczh OP 这是验证函数,有50多个,还有的是动态注册的
|
3
alsotang 2013-05-29 23:40:31 +08:00
__getattr__ 这个东西应该是你要的。
|
4
codepiano 2013-05-29 23:48:06 +08:00
obj = {
a:function(){ alert('a'); }, b:function(){ alert('b'); }, c:function(){ alert('c'); } } function test(name){ obj[name](); } test('c'); test('a'); test('b'); 你是想要这个效果吗? |
5
yakczh OP 如果带参数呢
test('isIP') 调用 Validator.check(data).isIP(); test('isRange',[100,200]),调用 Validator.check(data).isRange(100,200); 参数怎么传? |
6
codepiano 2013-05-30 11:38:23 +08:00
@yakczh 如下
obj = { a:function(args){ alert(args); }, b:function(args){ alert(args); }, c:function(args){ alert(args); } } function test(){ args = Array.prototype.slice.apply(arguments); name = args.shift(); obj[name](args); } test('c',1); test('a',2,3); test('b',4,5,6); |