Ember.Application.create 对比 Ember.Application.extend

Ember.Application.create vs Ember.Application.extend

我注意到在 Ember CLI (v0.1.12) 生成的 app.js 文件中,他们使用:

var App = Ember.Application.extend({...})

但在 introduction guide,他们使用:

window.App = Ember.Application.create({...});

这两种(创建与扩展)创建 Ember 应用程序的方法在结果上有什么不同吗?

如 Ember 文档中所述 extend Creates a new subclass, 同时 create Creates an instance of a class.

主要区别在于使用 extend

you can override methods but still access the implementation of your parent class by calling the special _super() method

但是 create 没有这种能力。

链接的文档有很好的代码示例,专门针对您的问题。

The create() on line #17 creates an instance of the App.Soldier class. The extend() on line #8 creates a subclass of App.Person. Any instance of the App.Person class will not have the march() method.

以及处理该引用的代码。