Javascript RequestAnimationFrame内的forEach循环

Javascript RequestAnimationFrame内的forEach循环,javascript,recursion,coffeescript,three.js,Javascript,Recursion,Coffeescript,Three.js,我想构建一个3JS项目,我正在这样做 class Blah scene : new THREE.Scene() renderer : new THREE.WebGLRenderer() camera : new THREE.PerspectiveCamera() render : ( renderables )-> renderables.forEach ( renderable )->

我想构建一个3JS项目,我正在这样做

    class Blah
       scene    : new THREE.Scene()
       renderer : new THREE.WebGLRenderer()
       camera   : new THREE.PerspectiveCamera()

       render : ( renderables )->

          renderables.forEach ( renderable )->
             renderable()

          @renderer.render( @scene, @camera ) 

   foo = new Blah()

   animateMovie =->
       requestAnimationFrame( animateMovie )     
       foo.render([baz.update, bar.update])
render方法需要更新一组函数。在使用requestAnimationFrame递归调用的animateMovie中有一个循环会导致堆栈溢出吗?这样做是否会导致性能问题。

requestAnimationFrame方法告诉浏览器在下一次重新绘制之前运行回调函数

当使用JavaScript进行动画和重复UI更新时,它特别有用。因为它与浏览器的重新绘制时间有关,所以它产生的效果比使用setInterval之类的工具更平滑


requestAnimationFrame方法只运行一次。您可以使用一种称为递归的技术使其反复循环。

使用renderable for renderable for renderable in renderables可以减轻调用堆栈的压力。谢谢您的提示。我要试一试。