Javascript 如何将函数传递给后来修改所述类的类

Javascript 如何将函数传递给后来修改所述类的类,javascript,ecmascript-6,Javascript,Ecmascript 6,我试图创建一个类,该类由构造时设置的函数修改。 问题是,我如何让这个函数修改分配给它的类的私有字段。 我创建了一个简化的代码来解释: (代码如下所示): 要修改的类: foo = function(options) { let {func} = options; //The function we send on construction let a = []; //The variable we are trying to modify with the function fun

我试图创建一个类,该类由构造时设置的函数修改。 问题是,我如何让这个函数修改分配给它的类的私有字段。 我创建了一个简化的代码来解释:

(代码如下所示):

要修改的类:

foo = function(options) {
  let {func} = options; //The function we send on construction
  let a = []; //The variable we are trying to modify with the function

  function executer(v) {
    func(v);
  }

  return {executer};
};
主要内容:

//构造时将发送的函数:
设funk=函数(v){

a、 推(v)//外部函数无法不经过传递就查看局部变量
a
。该函数尝试在其定义的位置查找变量,这意味着外部
funk
无法隐式访问
foo
的任何变量。如果
a
是对象变量,则可以通过上下文访问它xt绑定

您还需要将
a
的引用传递给函数

let funk = function(v, array) {
   array.push(v); 
}
并通过

function executer(v) {
    func(v, a);
}
您的代码

foo=函数(选项){
设{func}=options;
设a=[];
函数执行器(v){
func(v,a);
}
返回{executer};
};
设funk=函数(v,数组){
阵列推送(v);
}
let bar=新富({
func:funk
});

酒吧执行者(1)
看起来您需要阅读更多关于闭包的内容。@ibrahimmahrir您能推荐和文章/指南吗?还有。谢谢您的回答!我同时也做了一些类似的事情,只是我将“this”引用传递给函数。下面是代码:-您认为哪种解决方案更安全?将变量传递给它。没有任何内容关于安全。如果你
某物推入数组,那么你会故意更改数组。
function executer(v) {
    func(v, a);
}