打字稿传递内联无效函数错误

时间:2018-07-02 07:48:44

标签: typescript babylonjs

我对TypeScript和函数作为参数有疑问。我有BabylonJS的问题,但我认为,这与所有TypeScript有关。我将render函数存储在我的课程中:

this._renderloop = newScene.render; // render(): void; is a function of BabylonJS.Scene class

并通过

调用BabylonJS renderLoop
this._webglEngine.runRenderLoop(this._renderloop);

这给我有关未初始化Scene的某些属性(例如_activeParticles)的错误。

但是当我通过以下方式设置renderloop时:

this._renderloop = () => newScene.render();
this._webglEngine.runRenderLoop(this.renderloop);

一切正常。

第一次通话有什么问题?第二个不是更好,因为我跳过了一个函数调用?

(BabylonJS文档可在此处找到:https://doc.babylonjs.com/

1 个答案:

答案 0 :(得分:0)

this._webglEngine.runRenderLoop(newScene.render)

scene.render中的this将不确定。修复它的最简单方法是将其包装在类似于第二个示例的函数中。

这是因为javascript处理this的方式。有一个使用this in the Typescript wiki的不错的指南。