我正在传递类似于下面的字符串。
"Users_Controller.login"
“Users_Controller”代表下面的对象。 并“登录”其中的方法。
var Users_Controller = ( function () {
return{
login : function(vo, callback)
{......}
}
})();
只将字符串作为指针,是否可以调用方法?
答案 0 :(得分:1)
您可以使用此功能:
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");
但是,这不允许使用括号语法。
答案 1 :(得分:1)
这样的东西?
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');