ES6中函数调用自身需要注意的问题
在传统的递归调用中,可以采用如下方式
function sum(n) { return sum(n - 1) + n;
}
但如今es6盛行,为了保持代码一致性,可以采用两种解决方式。
第一种,将this重新绑定到回调
this.rendering= this.rendering.bind(this); rendering() { requestAnimationFrame(this.rendering); this.cube.rotation.x += 0.1; this.cube.rotation.y += 0.1; this.renderer.render(this.scene, this.camera); }
第二种方式使用箭头函数自动绑定到this
rendering() { requestAnimationFrame(()=>this.rendering); this.cube.rotation.x += 0.1; this.cube.rotation.y += 0.1; this.renderer.render(this.scene, this.camera); }