ember.jsObject方法extend和create?之间有什么区别?
有时候我会在示例中看到一个,有时候看到另一个.特别是,Em.Application.extend({})和之间有什么区别Em.Application.create({})?
如果我这样申报我的应用程序,这是什么意思?
Ember.Application.create({
MyController : Ember.ArrayController.extend({
}),
});
Run Code Online (Sandbox Code Playgroud)
如何访问MyController的实例?我需要以某种方式创建它吗?我需要将一些数据推入其中.
pjm*_*rse 31
死的简单答案是extend定义一个新的JS类,它继承自您正在扩展的类,但不创建该类的实例.create创建一个类的实例.
Em.Application是一种特殊情况,因为您正在创建命名空间,而不是对象实例.我不知道你什么时候想要extend Em.Application.
App = Em.Application.create(); // I have a new Em.Application namespace
App.A = Em.Object.extend(); // I have defined a new class, App.A,
// which inherits from Em.Object
var a = App.A.create(); // a now contains an instance of App.A.
我建议你也阅读" 命名约定 ".
ETA:和" 理解Ember对象 "一样,正如zaplitny的评论中所建议的那样.