26

duplicados posibles:
What does this mean? (function (x,y)){…}){a,b); in JavaScript
What do parentheses surrounding a JavaScript object/function/class declaration mean?¿Qué significa esto "(function() {});", una función entre paréntesis, en javascript?

Hola a todos

No sé lo que el siguiente no:

(function(){ 
    // Do something here 
    ... 
})(someWord) //Why is this here?; 

Mi Que son las siguientes:

  1. ¿Cuál es el significado de poner una función entre corchetes .i.e. (function(){});?
  2. ¿Qué hace el conjunto de corchetes al final de una función?

Normalmente los veo en códigos jquery y algunas otras bibliotecas de JavaScript.

+1

misma pregunta aquí: http://stackoverflow.com/questions/3921922/what-does-this-mean-function-xyab- in-javascript/3921997 # 3921997 – DoXicK

Respuesta

48

Usted está inmediatamente llamando a una función Anonymus con un parámetro específico.

Un ejemplo:

(function(name){ 
    alert(name); 
})('peter') 

Esto alerta "Peter".

En el caso de jQuery, puede pasar jQuery como parámetro y usar $ en su función. Por lo que aún puede utilizar jQuery en noConflict-mode pero el uso de la mano $:

jQuery.noConflict() 
(function($){ 
    var obj = $('<div/>', { id: 'someId' }); 
})(jQuery) 
+0

gracias por la respuesta, tiene sentido ahora – Shaoz

+0

¿Se le puede dar un nombre a esta función? o tiene que ser anónimo? –

8

Está realizando una función que se llama inmediatamente, con someWord como parámetro.

+0

Guau, esta es la respuesta más precisa y la entiendo.gracias – Shaoz

+0

De nada. –

6

Es una forma de definir una función anónima y luego ejecutarla de inmediato, sin dejar rastro, por así decirlo. El alcance de la función es verdaderamente local. Los corchetes () al final ejecutan la función: los corchetes adjuntos sirven para eliminar la ambigüedad de lo que se está ejecutando.

7

Básicamente esto le permite declarar una función anónima, y ​​luego enviándola entre paréntesis y escribiendo (someWord) está ejecutando la función. Podrías pensar que es como declarar un objeto e inmediatamente crear una instancia del objeto.

2

Quizás la publicación this te ayude un poco.

7

Se usa para crear una función anónima (función sin nombre que se puede "anidar" dentro de otra función) y pasar el argumento a esa función. La someWord se pasa como argumento, y la función puede leerla usando la palabra clave "argumentos".

Un simple ejemplo de uso:

function Foo(myval) { 
    (function(){ 
     // Do something here 
     alert(arguments[0]); 
    })(myval); //pass myval as argument to anonymous function 
} 
... 
Foo(10); 
Cuestiones relacionadas