Можете ли вы установить функцию внутри объекта в chrome.storage.local? - PullRequest
0 голосов
/ 10 июля 2019

Я создаю приложение 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): пример: "привет"

, а не функция,

Спасибо.

1 Ответ

0 голосов
/ 10 июля 2019

Сохранить аргументы и тело как это

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

Получить его и создать экземпляр функции:

let f = new Function(function.arguments, function.body);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...