我已经被困了 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/