this - PreloadJS + Typescript

标签 this typescript easeljs

我已经被困了 4 天,所以一切都这么顺利!

请引用 PreloadJS 定义:

https://github.com/borisyankov/DefinitelyTyped/blob/master/preloadjs/preloadjs.d.ts

从第 26 行开始。

我的问题是,如何在 typescript 中添加EventListener,同时将其绑定(bind)到类范围?

想象一下(半伪):

class Test
{
     private _loader:createJS.AssetLoader;

     constructor()
     {
          this._loader = new createJS.AssetLoader();
          this._loader.addEventListener(???????????);
          this._loader.load();
     }

     onLoadComplete(???): ???
     {

     }
}

最佳答案

使用 TypeScript 0.9.1.0:

class Test
{
     private _loader: createJS.AssetLoader;

     constructor()
     {
          this._loader = new createJS.AssetLoader();
          this._loader.addEventListenerthis.onLoadComplete);
          this._loader.load();
     }

     onLoadComplete = () =>
     {
        console.log(this.whatever);
     };
}

这里的重要部分是使用 onLoadComplete 的成员初始化语法 (member = value) 并使用粗箭头 lambda 表达式 (() => { ... }) 的功能。这将正确捕获回调中的 this 上下文。

关于this - PreloadJS + Typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154512/

相关文章:

javascript - 将 promise 处理程序绑定(bind)到其类的更好方法

generics - 带有类参数的泛型类型推断

javascript - 如何将 svg 转换为 createjs.Graphics?

javascript - EaselJS - 更改线条的透明度

javascript 对象原型(prototype) this 引用

javascript - Jquery each 方法

java - 为什么在 java 接口(interface)中使用 this 关键字,它指的是什么?

javascript - 如何以及何时使用 "ng build"生成的 lib 文件夹的 esm5 和 esm2015 目录?

javascript - 使用 ORM (TypeORM) 设计三维关系

javascript - 用画架保存旋转图像?