如何在LocalStorage中存储函数实例?

时间:2013-04-13 11:13:16

标签: javascript html5 local-storage

我需要在LocalStore中存储函数的实例,例如:

function boo() {
   //blah blah
}
var instance = new boo(); //I need to store this variable

如何在LocalStorage中存储instance变量?

修改

假设我需要在所有浏览器的标签/窗口中共享同一个函数实例,就像所有浏览器标签的单例一样。

2 个答案:

答案 0 :(得分:0)

尝试存储函数本身是不必要的。该函数是静态代码,而不是数据实例,应该从服务器传递给浏览器。

此外,localStorage由域分隔,因此如果您的目标是将功能注入用户的浏览器,然后在其他网站上调用,则无法实现。您需要的是创建一个浏览器插件并将其提交给各个商店。

每个页面的Javascript环境也不会在标签之间共享。

答案 1 :(得分:-4)

你可以做的是

var instance = this["boo"];

这将保存功能,但会省略上下文。 所以你必须在一些单独的变量中保存上下文或使函数独立于上下文并保存state一些

保存整个上下文

var context = JSON.stringify(this);
now when you retrive it then just use eval
var context = eval(context);

instance.cal(context);