我正在傳遞類似於下面的字符串。由字符串表示的調用方法
"Users_Controller.login"
「Users_Controller」 表示以下的對象。 並「登錄」其中的一種方法。
var Users_Controller = (function() {
return{
login : function(vo, callback)
{......}
}
})();
鑑於只有字符串作爲指針,是有可能調用該方法?
我正在傳遞類似於下面的字符串。由字符串表示的調用方法
"Users_Controller.login"
「Users_Controller」 表示以下的對象。 並「登錄」其中的一種方法。
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');
有趣的感謝。 – Chin
這工作的一種享受。謝謝 – Chin