我有方法a(),方法b()方法c().. 我将从服务器获取响应消息,其中包含a或b或c等.如果响应消息是a,那么我需要调用方法a().Tf响应消息是b,那么我需要调用方法b() ....我不想写任何if else条件或switch case来识别方法.
我不想这样做.
if(res =='a') a(); else if(res =='b') b();
而不是我需要像java中的反射之类的东西.
如果已在Global/window Scope中定义了该函数,则可以直接使用res
变量
window[res]();
否则在object中定义函数然后使用它
var obj = { a : function(){}, b : function(){} } obj[res]();
你可以使用一个对象并将函数存储在里面,比如
var functions = { a: function () {}, b: function () {}, c: function () {} default: function () {} // fall back }
用法:
functions[res]();
或者默认
(functions[res] || functions.default)();