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

wiem, że mogę wywołać metody z tego obiektu dosłownym użyciem notacji kropki to:Jak mogę wywołać funkcję składową korzystając z nawiasowania?

objectliteral.func1(); 

Ale chciałbym to zrobić za pomocą notacji tablicy tak:

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

Jak to zrobić Zrób to? Wiem, że mogę zastosować metody stosowania lub wywołania - ale nadal nie wiem, jak działają.

Mogę to zrobić ?:

objectliteral[func1].apply(); 

UCHWAŁA

na podstawie odpowiedzi:

objectliteral['func1']() 

jest wszystko, czego potrzebuję. Dzięki chłopaki.

Odpowiedz

11

Nie, to zrobić:

objectliteral['func1'](); 

Można również użyć dynamicznej nazwy:

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

Można spróbować to:

objectliteral['func1'](); 
1

użytkownikowi objectliteral["funct1"].apply() lub objectliteral["funct1"]().

Można również użyć zmiennej przekazać nazwę funkcji

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

powinny dać Ci pracę.

2

Można to zrobić tak:

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

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

// As this does 
objectLiteral.func1(); 
Powiązane problemy