2012-08-31 21 views
0
切換功能

比方說,我有功能x.a()x.b()。我想確定哪個函數執行vía變量,但它不是我的方式。這是我的代碼,我希望你能幫助我。從變量

var x = { 
    y: function(f, g){ 
     f(g); 
    } 
    a: function(txt){ 
     console.log(txt); 
    }, 
    b: function(txt){ 
     console.error(txt); 
    } 
} 

所以,當我打電話x.y("a", "Some text");它一樣的,如果我打電話x.a("Some text");

謝謝!

回答

2

使用括號按名稱來訪問一個對象的屬性:

var x = { 
    y: function(f, g) { 
     this[f](g); 
    }, 
    a: function(txt) { 
     console.log(txt); 
    }, 
    b: function(txt) { 
     console.error(txt); 
    } 
}; 
+0

爲什麼downvote? – Ryan

+1

OP代碼和你的代碼在聲明'y'後(記錄中,我*不是* downvoter)都沒有逗號。 – bfavaretto

+0

@ minitech - 也許downvoter寧願警惕聲譽打擊,而不是編輯你的帖子來添加逗號(如果這是原因)。 – RobG