【发布时间】:2013-08-02 03:43:40
【问题描述】:
我正在使用 EaselJS 创建一个游戏,我想知道是否有人可以解释演示文件中使用的继承模式是如何工作的。具体来说,我正在查看以下文件:https://github.com/CreateJS/EaselJS/blob/master/examples/assets/Ship.js
在第 7 行,Ship 的原型被设置为 createjs.container()...的实例。
var p = Ship.prototype = new createjs.Container();
然后在第 28 行,存储了对原始构造函数的引用:
p.Container_initialize = p.initialize; //unique to avoid overiding base class
最后,Ship 对象在第 30 行初始化
p.initialize = function () {
this.Container_initialize();
我正试图围绕这种模式展开思考,因为它与我过去遇到的任何情况都不同。有人可以向我解释为什么你想使用一个类的实例作为新类的原型吗?也许只是给我指出一个解释这种模式的链接?非常感谢这里的任何帮助......我意识到这个问题有点含糊。
【问题讨论】:
-
这是一个常见的模式,在这里查看教程developer.mozilla.org/en-US/docs/Web/JavaScript/…
-
谢谢,这几乎回答了我的问题。具体来说:“专门化的类通常称为子类,而另一个类通常称为父类。在 JavaScript 中,您可以通过将父类的实例分配给子类,然后对其进行专门化来实现这一点。在现代浏览器中,您可以也可以使用 Object.create 来实现继承。”
-
要了解这一切,最好的办法是查看 @EaselJS 的 Typescript 定义文件。
标签: javascript easeljs