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

猜你喜欢

转载自www.cnblogs.com/RainyBear/p/11103617.html
今日推荐