I have been doing the following:
var store = window.localStorage;
store.setItem()
but now I see code doing this:
localStorage.setItem()
Do both do the same thing?
I have been doing the following:
var store = window.localStorage;
store.setItem()
but now I see code doing this:
localStorage.setItem()
Do both do the same thing?
Unless you've declared a variable named localStorage
in a custom defined scope, they're the same. localStorage
refers to window.localStorage
. In fact every variable in global namespace can be accessed as window.<variableName>
For example:
<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>
"window" is the global object in Javascript, so you can ommit it if there's no chance for a conflict
there is no difference between the window.localStorage and localStorage the Window
is the global object
the window is the default prefix
but the correct one is window.localStorage
because the localStorage attribute is part of window object.
Supposedly, window.localStorage makes the localStorage faster to be found than just writing localStorage.
Storing a reference to it on a variable makes it even faster.
Anyway, these improvements are negligible on modern browsers. It only becomes useful if performance is being an issue.
Anyway, you get a possible idea about why it is being done like that.