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

Ich weiß, ich Methoden aus diesem Objekt aufrufen kann wörtlichen Punktnotation mit diesem:Wie kann ich eine Mitgliedsfunktion mithilfe der Klammernotation aufrufen?

objectliteral.func1(); 

Aber ich möchte, dass wie diese mit Array-Notation tun:

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

Wie ich tun TU das? Ich weiß, dass ich Methoden anwenden oder aufrufen kann - aber ich verstehe immer noch nicht, wie sie funktionieren.

Kann ich dies nur tun ?:

objectliteral[func1].apply(); 

RESOLUTION

basierend auf Antworten:

objectliteral['func1']() 

alles, was ich brauche. Danke Jungs.

Antwort

11

Nein, dies zu tun:

objectliteral['func1'](); 

Sie können auch einen dynamischen Namen verwenden:

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

du versuchen könnte:

objectliteral['func1'](); 
1

Benutzer objectliteral["funct1"].apply() oder objectliteral["funct1"]().

Sie können auch eine Variable verwenden, um den Funktionsnamen können

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

Sie tun objectliteral["func1"]();

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

bekommen arbeiten Sie sollten zu übergeben.

2

Sie können es wie folgt tun:

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

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

// As this does 
objectLiteral.func1(); 
Verwandte Themen