用字符串表示的调用方法

Calling Method represented by string

本文关键字:调用 方法 表示 字符串      更新时间:2023-09-26

我被传递了一个类似于下面的字符串

"Users_Controller.login"

"Users_Controller"表示下面的对象。"login"是其中的一个方法。

var Users_Controller = ( function () {
return{
  login : function(vo, callback)
   {......}
 }
 })();

给定字符串作为指针,是否可以调用该方法?

你可以使用这个函数:

function getPropertyFromString(str, start) {
    str = str.split(".");
    var prop = start || window;
    for (var i = 0; i < str.length; i++) {
        if(prop == undefined)
          return prop;
        else
          prop = prop[str[i]];
    }
    return prop;
}
getPropertyFromString("Users_Controller.login");

像这样?

var Users_Controller = (function () {
    return {
        login: function (name) {
            alert("hello " + name);
        },
        logout: function (name) { alert("goodbye "+name); }
    }
})();

var methods = {};
for (method in Users_Controller) {
    methods["Users_Controller." + method] = Users_Controller[method];
}
methods["Users_Controller.login"]('john');
methods["Users_Controller.logout"]('john');