J'ai fait ce qui suit:
var store = window.localStorage; store.setItem()
Mais maintenant je vois le code en faisant ceci:
localStorage.setItem()
Les deux font-ils la même chose?
Sauf si vous avez déclaré une variable nommée localStorage
dans une portée définie personnalisée, elles sont identiques. localStorage
réfère à window.localStorage
. En fait, chaque variable dans l'espace de noms global peut être accessible en tant que window.<variableName>
Par exemple:
<script> function foo() { // here window.localStorage == localStorage } function foo2 { var localStorage = 10; // here window.localStorage != localStorage // since you have a local variable named localStorage } </script>
"Fenêtre" est l'objet global en Javascript, afin que vous puissiez l'ommettre s'il n'y a aucune chance de conflit
Il n'y a pas de différence entre window.localStorage et localStorage la Window
est l'objet global
La fenêtre est le préfixe par défaut
Mais le bon est window.localStorage
car l'attribut localStorage fait partie de l'objet fenêtre.
Supposons que window.localStorage rend le localStorage plus rapide que l'écriture de localStorage.
Le stockage d'une référence sur une variable le rend encore plus rapide.
Quoi qu'il en soit, ces améliorations sont négligeables sur les navigateurs modernes. Cela ne devient utile que si la performance est un problème.
Quoi qu'il en soit, vous avez une idée possible de la raison pour laquelle cela se fait comme ça.