Les deux voies sont vraiment similaire, mais il y a une petite différence sur la façon dont la variable globale myFunc
est créée.
Dans la deuxième façon, en utilisant l'instruction var
, va créer la variable myFunc
comme une propriété non supprimable de l'objet global, l'instruction var définit explicitement l'attribut {DontDelete}
interne, par exemple:
var myFunc = (function(){
//do something
})();
delete window.myFunc; // false
Bien que le premier peut être supprimé:
(function(){
var myFunc = (function(){
//do something
})();
window.myFunc = myFunc;
})();
//...
delete window.myFunc; // true
Si vous essayez ce qui précède à Firebug, les deux peuvent être supprimés, c'est parce que Firebug utilise l'évaluation de code (eval
) dans la console.
Vous pouvez vérifier l'exemple ci-dessus here.
article recommandé:
donc quand voudriez-vous, ou besoin, de supprimer quelque chose de l'objet global? –
@Russ: Eh bien, une pratique courante consiste simplement à les mettre à «null». – CMS