Вы создаете новый function
, который создает новую область видимости в javascript.
Вы можете использовать функции стрелок, которые сохраняют область действия функции, в которой она определена, или вам нужно привязать (это) к своей функции.
Подход 1:
// arrow function
let rec = (pri, pvi) => {
console.log(pri + '' + pvi);
console.log(this.copyColumns); // Now this.copyColumns will be the same as outside this function
let latest = [];
if (this.copyColumns[pri]) {
this.copyColumns[pri].values[pvi].active = true;
let x = this.copyColumns[pri].values[pvi]
rec(x.pri, x.pvi)
}
};
Подход 2:
let rec = function (pri, pvi) {
console.log(pri + '' + pvi);
console.log(this.copyColumns); // Not working returns undefined.
let latest = [];
if (this.copyColumns[pri]) {
this.copyColumns[pri].values[pvi].active = true;
let x = this.copyColumns[pri].values[pvi]
rec(x.pri, x.pvi)
}
// bind this to the function
}.bind(this);