4

私は localStorage を使用してきましたが、質問がありました:

次の方法ではなくsetItem、メソッドを使用する利点はどれですか。getItem

SET ITEM : localStorage.myKey = "myValue";
GET ITEM : localStorgae.myKey --> 「myValue」を返します

それらは単なるヘルパーメソッドですか?良い習慣?

好奇心に感謝します。

4

2 に答える 2

1

set/getItemは、次の理由でプロパティ アクセスよりも優れています。

  1. localStorageすべての入力を強制的に文字列に変換しますが、set/getItemメソッドを上書きしてシリアル化と逆シリアル化を実行し、文字列以外の型をサポートできます。

    var basicSetItem = localStorage.setItem;
    localStorage.setItem = function(key, val) {
        basicSetItem.call(localStorage, key, JSON.stringify(val));
    }
    
    var basicGetItem = localStorage.getItem;
    localStorage.getItem = function(key) {
        return JSON.parse(basicGetItem.call(localStorage, key));
    }
    

    ECMAScript 5 API を使用して、すべてのストレージ プロパティ値に対して同等の効果を達成することはできません。

  2. ストレージ キー を設定することはできず、関数アクセスを使用せずlengthにキーgetItemsetItem、またはにアクセスすることはできません。removeItem

    localStoage.length = "foo";           // does not work
    localStoage.setItem("length", "foo"); // works
    
    var bar = localStoage.setItem;             // gets the `setItem` function
    var bar = localStorage.getItem("setItem"); // gets the value stored in the `setItem` key
    
于 2013-09-05T14:15:56.750 に答える