33

私は次のことを行ってきました:

var store = window.localStorage;
store.setItem()

しかし今、私はこれを行うコードを見ます:

localStorage.setItem()

どちらも同じことをしますか?

4

5 に答える 5

37

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>
于 2012-09-30T09:15:09.403 に答える
6

"window" は Javascript のグローバル オブジェクトなので、競合する可能性がない場合は省略できます。

于 2012-09-30T09:15:10.547 に答える
1

Window グローバルオブジェクトである window.localStorage と localStorage の間に違いはありません

ウィンドウはデフォルトのプレフィックスです

しかし正しいのはwindow.localStorage、localStorage 属性が window オブジェクトの一部であるためです。

于 2012-09-30T09:15:35.083 に答える
0

おそらく、window.localStorage を使用すると、単に localStorage を書き込むよりも localStorage をすばやく見つけることができます。

それへの参照を変数に格納すると、さらに高速になります。

とにかく、これらの改善は最新のブラウザーでは無視できます。パフォーマンスが問題になっている場合にのみ役立ちます。
とにかく、なぜそれがそのように行われているのかについて考えられるアイデアが得られます。

于 2013-02-24T19:27:37.970 に答える