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);
}