我有一个javascript(es2015)类我想更新$ .each调用的函数中数组的值。但是在构建中,myarr是未定义的。我假设this
在each
函数内引用了传递给each
的匿名函数。如何访问myarr
的课程内容?
class mycl{
constructor(){
this.myarr=[];
}
build(d){
$.each(d,function(d,i){
let myd = ..... // Do some stuff with the data
this.myarr.push(myd);
});
}
}
答案 0 :(得分:1)
您是否尝试过在每个函数中使用bind?像这样:
class mycl{
constructor(){
this.myarr=[];
}
build(d){
$.each(d,function(d,i){
let myd = ..... // Do some stuff with the data
this.myarr.push[myd];
}).bind(this);
}
}
答案 1 :(得分:0)
创建一个构建器函数,该函数是Mycl的函数,并调用它而不是使用anon函数。
class mycl{
constructor(){
this.myarr=[];
}
builder(d,i){
// let myd = ..... // Do some stuff with the data
this.myarr.push(myd);
},
build(d){ $.each(d,this.builder); }
}
答案 2 :(得分:0)
您需要在变量中保留对类的引用,如下所示:
{
"splitting": {
"percentBegin": 0,
"percentEnd": 70,
"complement": false,
"strategy": "sequential"
}
}