2013-07-28 108 views
0

我有一個應用程序使用jQuery的手機和jQuery。 在第一頁上有創建的對象,然後將其用於臨時存儲:清空JavaScript對象(jQuery Mobile)

var StorageObject = new object(); 

這是在全球空間定義,因此它是在會話持續性。 作爲鏈接被點擊,並採取了對象的值更新操作:

StorageObject.value = 'something'; 

我的問題是,你需要清空對象(如果有人點擊取消或東西),並重新開始需要一個空的存儲對象。由於jquery-mobile基本上都在一個頁面上,因此不會重新加載全局空間,因此存儲對象將從上次使用中持續存在。 我不相信有什麼我可以調用來清空對象,而無需編寫一些遞歸代碼來遍歷每個值並將其清空。

是否有清空對象的方法,或者我應該以另一種方式做到這一點?

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

編輯:

在遵循下面的建議,我仍然有存儲對象內的數組的問題。

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

到: 我不得不改變最初的定義,所以我從定義的存儲對象

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

var StorageObject = new MyStorageObject(); 

從那裏對我能像其他人所說,只要致電:

StorageObject = new MyStorageObject(); 

得到一個新的副本:)

+0

多少引用的對象,你呢?如果'StorageObject'是唯一的引用,只需說'StorageObject = {}'或'StorageObject = new Object();'並且舊對象將被垃圾收集。 – nnnnnn

+0

由於可能沒有直接引用該對象,因此應該只能執行'StorageObject = new object();'來創建一個新的對象,否? –

回答

2

如果真的需要,可以loop overdelete每個屬性:

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

否則,正如其他人所說,只是用不同的Object替換:

StorageObject = {}; 
0

你不能清空對象本身,你有手動清空它,也許使用自定義函數是這樣的:

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

,或者,如果你只需要來指代StorageObject variabile的,你可以將其設置爲空或一個新的對象實例每次你需要時間重置像這樣

StorageObject = null; 

或本

StorageObject = new Object();