Javascript Firefox加载项SDK中导出数组中的函数不可用

Javascript Firefox加载项SDK中导出数组中的函数不可用,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我有一个模块,它导出一个数组,其中包含包含函数参数的对象: var myArray = [ { id: "firstObject", func: function() { console.log("Hi from function!"); } } ]; exports myArray = myArray; 此模块包含在另一个脚本中,该脚本向客户端脚本发送事件,并将数组作为参数传递: var {myArray} = require("./array.

我有一个模块,它导出一个数组,其中包含包含函数参数的对象:

var myArray = [
  {
    id: "firstObject",
    func: function() {
      console.log("Hi from function!");
    }
  }
];

exports myArray = myArray;
此模块包含在另一个脚本中,该脚本向客户端脚本发送事件,并将数组作为参数传递:

var {myArray} = require("./array.js");

for (var i = 0; i < myArray.length; i++) {
  self.port.emit("someEvent", myArray[i]);
}
var{myArray}=require(“./array.js”);
对于(var i=0;i
在客户端,我现在可以访问对象的
id
,但不能访问
func
参数所持有的函数。实际上,在客户端根本没有设置
func
参数

为什么呢?如何避免这种情况呢?

比如说:

有效负载可以是可序列化为JSON的任何值

因此,当您发出消息时,它们不会被编码


为了避免该问题,您必须将该逻辑从对象移动到加载项的主脚本或内容脚本:这取决于您需要对该消息执行什么操作。

myArray出现语法错误,您能更正它并重试吗?谢谢!我已经改正了。我发布的代码只是示例代码,我正在处理的真正代码是。谢谢!就这样。我同时也找到了答案,不过你发的更快了。:-)