2012-10-04 2 views
1

Possible en double:
What does the exclamation mark do before the function?Qu'est-ce que le! partie de! function() {...}(); signifier?

Je suis venu à travers l'utilisation des éléments suivants par le code du bouton de partage Twitter:

!function (d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (!d.getElementById(id)) { 
     js = d.createElement(s); 
     js.id = id; 
     js.src = "//platform.twitter.com/widgets.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    } 
}(document, "script", "twitter-wjs"); 

Et je me demandais ce que fait le bit !function.

Je devine est court pour (function(){...})(); mais je n'ai rien trouvé en ligne pour le confirmer.

+0

@Quentin ah merci, j'ai eu une recherche mais bien sûr la recherche de "fonction" ne contribue pas à faire beaucoup:/ –

Répondre

3

Alors que @ elias-van-ootegem l'a surtout bien fait, de nombreux navigateurs le considéreront comme une erreur de syntaxe sans le bang.

function() { ... }() // Bad 
!function() { ... }() // Good 
(function() { ... })() // Better, more readable. 
(function() { ... }()) // Best 
+0

'(function() {...}())' encore mieux: – fcalderan

+0

Pourquoi est-ce? – Nathaniel

+0

voir http://stackoverflow.com/a/12259808/1098851 dernier paragraphe – fcalderan

Questions connexes