Si je fonction d'origine (comme exemple):auto-Allégation fonction JavaScript Anonymous - retour plusieurs objets
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
et je suis allé de l'avant et fait cela en une auto-invocation fonction anonyme JS, comme tel:
(function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
})()
Est-ce que je fais quelque chose de paradoxal? Je voudrais accéder à x et y en tant que variables globales, mais la fonction anonyme auto-invoquante est utile dans d'autres domaines que je ne vais pas entrer dans les détails en ce moment - je veux juste le garder.
dois-je faire quelque chose comme:
var x= (function() {
var x = function() { alert('tadaaa'); return 1; }
var y = function() { alert('tadaaa'); return 1; }
// Should I be doing something like
return x
})()
ou
var x= (function() {
var x = function() { alert('tadaaa'); return 1; }
return x
})()
var y = (function() {
var x = function() { alert('tadaaa'); return 1; }
return y
})()
semble un peu redondant?
Dans votre deuxième extrait de code, je crois que vous allez créer une instance locale de '' x' et y' et ainsi ne serez pas en mesure d'accéder à ces globalement. Manquer 'var' va créer des variables globales. Cependant je ne sais pas pourquoi vous voudriez faire ceci sans voir le contexte. –