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);
}

 

posted @ 2019-06-28 16:50  DoubleCorner  阅读(1020)  评论(0编辑  收藏  举报