2010-10-07 10 views
-1

Possible en double:
Explain JavaScript's encapsulated anonymous function syntaxQu'est-ce que cela signifie en javascript?

Je viens de lire un livre javascript mais je l'ai vu ce code:

1(function() { 

      // code 

})(); 

ce qui est-ce? est une fonction spéciale?

+0

D'où vient ce '1' et que'}; ' Ils n'ont pas l'air d'appartenir. – BoltClock

+0

J'ai correct maintenant :) .... que 1 est probablement le nom de la fonction mais je ne sais pas. – xRobot

+0

une faute de frappe? éditeurs de livres ne sont pas infaillibles: D – lincolnk

Répondre

1

Comme écrit, il a une erreur de syntaxe.

Je devine que c'était plus:

(function() { 
      // code 
})(); 

ou

(function() { 
      // code 
    } 
)(); 

Détaillez-le:

(FOO)() // calls FOO with no arguments. 

Et

function() { //creates a function that takes no arguments. 
     // code 
} 

Ainsi, ensemble, il créerait une fonction qui ne prend aucun argument, puis l'appelle. Je ne vois pas pourquoi vous le feriez en dehors de montrer que vous le pouvez.

+0

Vous le faites en JavaScript pour créer une portée protégée. 'var's définis dans ce bloc ne seront pas accessibles dans la portée externe. – gnarf

+0

@gnarf. Ouais, c'est tout! –

1

Il semble que l'intention était de déclarer la fonction inline/anonymous et de l'exécuter immédiatement.

Questions connexes