0

我有一个使用 jquery-mobile 和 jquery 的应用程序。在第一页上创建了一个对象,然后将其用于临时存储:

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();

获得它的新副本:)

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 回答