您可以在chrome.storage.local中的对象内部设置函数吗?

时间:2019-07-10 13:52:46

标签: javascript google-chrome-app

我正在构建一个chrome应用程序,我正在尝试在chrome.storage.local内的对象内添加一个函数,但是当我执行该操作时,如果您尝试获取它就不会出现(所有其他内容都会出现,但不会出现该功能)

但是,如果您尝试在像这样的普通对象上做

let a={b:function(){return 'This is working'}};

然后它起作用。

如果我只能使用eval,那不会有问题,但是由于chrome应用程序的安全性,它无法正常工作。

我想做的是:

chrome.storage.local.set({  'obj':[  {example:'hello', fn:function(){return 'This is not working'}}  ]  });

那么你就这么做

chrome.storage.local.get('obj',function(e){console.log(e.obj)});

然后它将返回

数组(长度1):例如:“ hello”

而不是功能

谢谢。

1 个答案:

答案 0 :(得分:-1)

像这样存储参数和正文

{function:{arguments:"a,b,c",body:"return a*b+c;"}}

检索它并实例化函数:

let f = new Function(function.arguments, function.body);