0

私は理にかなっていることを試しました:

以下のモジュールではlocalStorage.foo機能しますが、localStorage.session_array['privacy']未定義を返します。

これは、最新のブラウザのプロトタイプコードです。

var ISession = ( function () 
{

    localStorage.session_array = 
    {
        privacy:            0
    };

    localStorage.foo = 1; 

    var SessionI = function ( ) 
    {
    };

    SessionI.prototype.get = function( type ) 
    {
        return localStorage.session_array[ type ];
    };

    SessionI.prototype.set = function( type, value ) 
    {
        localStorage.session_array[ type ] = value;
        alert( '|' + localStorage.foo ); // returns 1
        alert( '|' + localStorage.session_array[ 'privacy' ] ); // returns undefined
    };

    return SessionI;

} ) ();

その間、非配列プロパティを使用してこれを実装します。

4

2 に答える 2

3

localStorageはデータを文字列としてのみ保存します

于 2012-06-05T18:31:50.363 に答える
1

localstorageはすべてのブラウザーでサポートされているわけではないため、代わりにstore.jsを確認することをお勧めします。利用可能な場合はローカルストレージをサポートし、そうでない場合は他のストレージメカニズム(globalStorageおよびUserData)を使用します。最良の部分は、JSONでエンコードされたデータも保存できることです。

// Store 'marcus' at 'username'
store.set('username', 'marcus')

// Get 'username'
store.get('username')

// Remove 'username'
store.remove('username')

// Clear all keys
store.clear()

// Store an object literal - store.js uses JSON.stringify under the hood
store.set('user', { name: 'marcus', likes: 'javascript' })

// Get the stored object - store.js uses JSON.parse under the hood
var user = store.get('user')
alert(user.name + ' likes ' + user.likes)

store.set('user', { name: 'marcus', likes: 'javascript' })
alert("Hi my name is " + store.get('user').name + "!")

store.set('tags', ['javascript', 'localStorage', 'store.js'])
alert("We've got " + store.get('tags').length + " tags here")
于 2012-06-05T18:32:45.973 に答える