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

sé que puedo llamar a los métodos de ese objeto literal usando la notación punto esto:¿Cómo puedo invocar una función miembro usando notación de corchetes?

objectliteral.func1(); 

Pero me gustaría hacer que el uso de la notación de matriz de esta manera:

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

¿Cómo puedo ¿Haz eso? Sé que puedo usar métodos de solicitud o de llamada, pero sigo sin entender cómo funcionan.

¿Puedo hacer esto ?:

objectliteral[func1].apply(); 

RESOLUCIÓN

basado en las respuestas:

objectliteral['func1']() 

es todo lo que necesito. Gracias chicos.

Respuesta

11

No, hacer esto:

objectliteral['func1'](); 

También puede utilizar un nombre de dinámica:

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

Usted podría intentar esto:

objectliteral['func1'](); 
1

usuario objectliteral["funct1"].apply() o objectliteral["funct1"]().

También se puede utilizar una variable para pasar el nombre de la función

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

Usted puede hacer objectliteral["func1"]();

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

debe conseguir que trabajar.

2

Puede hacerlo de esta manera:

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

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

// As this does 
objectLiteral.func1(); 
Cuestiones relacionadas