0

jquery-mobile と jquery を使用したアプリがあります。最初のページには、作成されたオブジェクトがあり、一時的なストレージに使用されます。

var StorageObject = new object();

これはグローバル空間で定義されるため、セッション内で永続的です。リンクがクリックされてアクションが実行されると、オブジェクトは次の値で更新されます。

StorageObject.value = 'something';

私の問題は、オブジェクトを空にする必要がある場所 (誰かがキャンセルまたは何かをクリックした場合) と、空のストレージ オブジェクトを必要とする場所です。jquery-mobile は基本的にすべて 1 ページ上にあるため、グローバル スペースのリロードはなく、ストレージ オブジェクトは最後に使用されたものから保持されます。すべての値を実行して空にする再帰コードを記述せずに、オブジェクトを空にするために呼び出すことができるものはないと思います。

オブジェクトを空にする方法はありますか、それとも別の方法で行う必要がありますか?

===========================================

編集:

以下のアドバイスに従っても、ストレージ オブジェクト内の配列の問題は解決しませんでした。最初の定義を変更する必要があるため、ストレージ オブジェクトを次のように定義しました。

StorageObject.value  = 0;
StorageObject.ArrayofValues = new Array();

に:

function MyStorageObject(){
  this.value = 0;
  this.ArrayofValues = new Array();
};

var StorageObject = new MyStorageObject();

そこから、他の人が示唆しているように、次のように電話することができます:

StorageObject = new MyStorageObject();

それの新しいコピーを取得するには:)

4

2 に答える 2

2

本当に必要な場合は、各プロパティをループできます。delete

for (var prop in StorageObject) {
    if (StorageObject.hasOwnProperty(prop)) {
        delete StorageObject[prop];
    }
}

それ以外の場合は、他の人が示唆しているように、別のものに置き換えてObjectください:

StorageObject = {};
于 2013-07-28T12:22:55.030 に答える
0

オブジェクト自体を空にすることはできません。おそらく次のようなカスタム関数を使用して、手動で空にする必要があります。

StorageObject.empty = function(){
    //empty all my data
}

または、StorageObject 変数を参照するだけでよい場合は、このようにリセットする必要があるたびに、それを null または新しいオブジェクト インスタンスに設定できます。

StorageObject = null;

またはこれ

StorageObject = new Object();
于 2013-07-28T12:18:06.243 に答える