私は次のことを行ってきました:
var store = window.localStorage;
store.setItem()
しかし今、私はこれを行うコードを見ます:
localStorage.setItem()
どちらも同じことをしますか?
私は次のことを行ってきました:
var store = window.localStorage;
store.setItem()
しかし今、私はこれを行うコードを見ます:
localStorage.setItem()
どちらも同じことをしますか?
localStorage
カスタム定義のスコープで名前が付けられた変数を宣言していない限り、それらは同じです。localStorage
を指しwindow.localStorage
ます。実際、グローバル名前空間のすべての変数は、次のようにアクセスできます。window.<variableName>
例えば:
<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" は Javascript のグローバル オブジェクトなので、競合する可能性がない場合は省略できます。
Window
グローバルオブジェクトである window.localStorage と localStorage の間に違いはありません
ウィンドウはデフォルトのプレフィックスです
しかし正しいのはwindow.localStorage
、localStorage 属性が window オブジェクトの一部であるためです。
おそらく、window.localStorage を使用すると、単に localStorage を書き込むよりも localStorage をすばやく見つけることができます。
それへの参照を変数に格納すると、さらに高速になります。
とにかく、これらの改善は最新のブラウザーでは無視できます。パフォーマンスが問題になっている場合にのみ役立ちます。
とにかく、なぜそれがそのように行われているのかについて考えられるアイデアが得られます。