是否可以在函数参数内动态生成参数?

时间:2017-05-15 18:51:31

标签: javascript google-chrome-extension

大家。

我有一个chrome.storage.local.get函数,它应该接受已经设置到本地内存的对象。它的结构类似......

let numberOfRows = 3; //The number of generic rows of this information I'll need
let storageIDs = []; //The keys for the object that I'll need.
let storageArray = storageIDs.slice(0); //The default keys I need I'll number if I need to
let storageObject = {}; //The final object will be stored in here

for(...) {//Fill the storageArray with each key (number appended) at the end}

for(...) {//Turn each finalized key into an object stored in an storageObject}

chrome.storage.local.get({
    (function(){
      for(let index in storageObject) { 
          if (storageObject.hasOwnProperty(index)) {
            return storageObject[index];
          }
        }
    })()
}, function (result) {...}

所以...最终结果是我将设置行数并传入一个键数组,然后它将每个键转换为对chrome本地存储的对象引用。

但是我不想多次调用storage.local.get,所以我想知道是否可以返回参数内的storageObject 内的每个对象清单?或者是否有一种更简单的方法可以将storageObject内的所有对象作为参数传入?

编辑: chrome.storage.local.get期待一组对象,"keyValue1": {}, "keyValue2": {}等等。

当它将这些对象传递给result时,我可以将它们称为result["keyValue1"],但是如果我放入包含所有键的对象,我只能回调该对象

我需要的是一种动态传递storageObject的所有属性而无需多次调用chrome.storage.local.get()的方法。

1 个答案:

答案 0 :(得分:0)

我的要求是将动态数量的参数传递到chrome.storage.local.get函数中,每个函数都被视为一个对象,这些对象将全部作为封闭函数的result被选中

原来我可以一直这样做。

let numberOfRows = 3; //The number of generic rows of this information I'll need
let storageIDs = []; //The keys for the object that I'll need.
let storageArray = storageIDs.slice(0); //The default keys I need I'll number if I need to

for(...) {//Fill the storageArray with each key (number appended) at the end}

chrome.storage.local.get( storageArray, function (result) {...})

get接受一个对象(花括号)或一个对象键数组。我从来没有让它工作,因为我一直忘记删除花括号。