2010-12-17 59 views
6
var objectliteral = { 
    func1:fn(){}, 
    func2:fn(){}, 
    ................. 
    funcn:fn(){} 
} 

我知道我可以使用點符號調用該對象中文字的方法是:如何使用括號表示法調用成員函數?

objectliteral.func1(); 

但我想這樣做,使用數組表示法是這樣的:

objectliteral[func1]. .... something something...... 

我如何去做?我知道我可以使用apply或call方法 - 但我仍然不太明白他們的工作方式。

我可以做這個?:

objectliteral[func1].apply(); 

解決方案基於答案

objectliteral['func1']() 

是我所需要的。 謝謝你們。

回答

11

沒有,這樣做:

objectliteral['func1'](); 

您也可以使用動態名稱:

var myfuncname='func1'; 
objectliteral[myfuncname](); 
1

你可以試試這個:

objectliteral['func1'](); 
1

用戶objectliteral["funct1"].apply()objectliteral["funct1"]()

你也可以使用一個變量傳遞函數名

var funname = "funct1"; 
objectliteral[funname ]() 
1

你可以做objectliteral["func1"]();

1
var func1 = 'func1' 
objectLiteral[func1](); 

應該讓你的工作。

2

你可以這樣說:

var objectLiteral = { 
    func1: function() { alert('func1'); }, 
    func2: function() { alert('func2'); } 
}; 

// This does the same thing... 
objectLiteral['func1'](); 

// As this does 
objectLiteral.func1();