Angular 角度递归函数在调用自身时抛出错误?
我有一个递归函数,当在角度范围之外时,它工作得非常好。它都是原生JS,但在angular2/4中尝试使用它时似乎会抛出错误 功能:Angular 角度递归函数在调用自身时抛出错误?,angular,typescript,Angular,Typescript,我有一个递归函数,当在角度范围之外时,它工作得非常好。它都是原生JS,但在angular2/4中尝试使用它时似乎会抛出错误 功能: convertToArray(object, keys) { Object.keys(object).forEach(function (k) { if (object[k] && typeof object[k] === 'object') { this.convertToArray(object[k
convertToArray(object, keys) {
Object.keys(object).forEach(function (k) {
if (object[k] && typeof object[k] === 'object') {
this.convertToArray(object[k], keys);
}
if (keys.indexOf(k) !== -1 && !Array.isArray(object[k])) {
object[k] = [object[k]];
}
});
}
我通过以下方式调用该方法:
console.log(this._utils.convertToArray(this.mapRulesData, ['rule']))
当我在项目中运行它时,我得到以下错误:
TypeError: Cannot read property 'convertToArray' of undefined
当我在函数中执行一些console.log
时,它似乎在抛出错误之前到达了这一行:
this.convertToArray(object[k], keys);
当尝试以这种方式调用方法本身时,angular是否有什么特殊之处?
此
在函数(k)
中丢失,并且不引用对象本身。每个函数
创建都有自己的此
把它改成。箭头函数不绑定自己的此
convertToArray(object, keys) {
Object.keys(object).forEach(k => {
if (object[k] && typeof object[k] === 'object') {
this.convertToArray(object[k], keys);
}
if (keys.indexOf(k) !== -1 && !Array.isArray(object[k])) {
object[k] = [object[k]];
}
});
}
此
在函数(k)
中丢失,并且不引用对象本身。每个函数
创建都有自己的此
把它改成。箭头函数不绑定自己的此
convertToArray(object, keys) {
Object.keys(object).forEach(k => {
if (object[k] && typeof object[k] === 'object') {
this.convertToArray(object[k], keys);
}
if (keys.indexOf(k) !== -1 && !Array.isArray(object[k])) {
object[k] = [object[k]];
}
});
}