1 function a(){ 2 alert("fun a()"); 3 } 4 function b(){ 5 alert("fun b()"); 6 } 7 var methodName = ""; 8 //method1 9 methodName = "a"; 10 function method1(methodName){ 11 //初始化this.func属性, 12 this.func = function(){}; 13 try{ 14 //这里用eval方法,把我们传进来的这个方法名所代表的方法当作一个对象来赋值给method1的func属性。 15 //如果找不到methodName这个对应的对象,则eval方法会抛异常 16 this.func = eval(methodName); 17 }catch(e){ 18 alert(methodName+"()不存在!"); 19 } 20 } 21 var c = new m(methodName); 22 c.func(); 23 24 /** 25 * method2, 比较简洁 26 */ 27 methodName = "b"; 28 function method2(methodName){ 29 this.func = new Function(methodName+"();"); 30 } 31 var c = new m(methodName); 32 try{ 33 c.func(); 34 }catch(e){ 35 Ext.Msg.alert(methodName+"()不存在!"); 36 }