sra*_*thi 10 javascript recursion typescript angular
我试图递归调用以下函数.
public getData(key,value){
this.htmlString += '<span style="color:cornflowerblue">'+key+' </span>:';
if(value instanceof Object){
Object.keys(value).forEach(function (keydata) {
let obj = value[keydata];
this.getData(keydata,value[keydata]);
console.log(key,obj,obj instanceof Object)
});
}else{
this.htmlString += '<span>'+value+'</span>';
}
return this.htmlString;
};
Run Code Online (Sandbox Code Playgroud)
当我试图调用teh函数时它显示错误"无法读取未定义的属性'getData'.代码中是否有任何错误或任何其他方式来执行此操作.
Max*_*kyi 13
forEach
接受回调,这是一个匿名函数,匿名函数this
内部指window
的是非严格模式或undefined
严格模式.
你需要绑定上下文:
Object.keys(value).forEach(function (keydata) {
let obj = value[keydata];
this.getData(keydata,value[keydata]);
console.log(key,obj,obj instanceof Object)
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
或使用箭头功能:
Object.keys(value).forEach((keydata) => {
let obj = value[keydata];
this.getData(keydata,value[keydata]);
console.log(key,obj,obj instanceof Object)
});
Run Code Online (Sandbox Code Playgroud)
或者只是将指针this
作为第二个参数传递给forEach
:
Object.keys(value).forEach(function (keydata) {
let obj = value[keydata];
this.getData(keydata,value[keydata]);
console.log(key,obj,obj instanceof Object)
}, this);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7894 次 |
最近记录: |