2011-08-04 9 views
0

以下のような文字列が渡されています。文字列で表される呼び出し方法

"Users_Controller.login" 

「Users_Controller」は、以下のオブジェクトを表します。 その中にメソッドを「ログイン」します。

var Users_Controller = (function() { 
return{ 

    login : function(vo, callback) 
    {......} 

} 
})(); 

ポインタとしての文字列のみを指定すると、メソッドを呼び出すことはできますか?

答えて

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"); 

しかし、これはブラケットの構文を使用できません。

+0

これは治療になりました。ありがとう – Chin

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'); 
+0

おかげさまでありがとうございました。 – Chin

関連する問題