Windows 8 WinJS.Application.sessionState真正存储的内容

Windows 8 WinJS.Application.sessionState真正存储的内容,windows-8,microsoft-metro,winjs,Windows 8,Microsoft Metro,Winjs,在我的Windows应用商店应用程序中,我将数据直接存储在sessionState对象中,因此以后不需要将数据移动到那里。在一种情况下,我存储一个对象,该对象具有在包含范围中声明的变量的访问器方法,如下所示: (function () { var a = []; var index = -1; WinJS.Application.sessionState.data = { add: function (item) {

在我的Windows应用商店应用程序中,我将数据直接存储在sessionState对象中,因此以后不需要将数据移动到那里。在一种情况下,我存储一个对象,该对象具有在包含范围中声明的变量的访问器方法,如下所示:

(function ()
{
    var a = [];
    var index = -1;

    WinJS.Application.sessionState.data = 
    {
        add: function (item)
        {
            index = a.length;
            a.push(item);
        },
        currentItem: function ()
        {
            return a[index];
        }
    };
})();
我的问题是sessionState对象是否会存储
a
索引
,因为它们是范围引用的,还是不在其中,因为它们不在其中。

在应用程序第一次挂起之前,您可以使用“数据”来操作“a”和“索引”。当应用程序挂起时,存储在sessionState对象中的任何数据都会自动序列化到磁盘。功能将被删除。恢复后,我们丢失了两个函数“add”和“currentItem”

请参阅更多: