gpt4 book ai didi

javascript - 为什么 ember-cli 使用扩展而不是创建?

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:25 24 4
gpt4 key购买 nike

在你首先编写的新 ember 应用程序中:

var App = Ember.Application.create({
test: 'foo',
...
});

在您首先编写的新 ember-cli 应用程序中:

var App = Ember.Application.extend({
test: 'foo',
...
});

为什么?

(在第二种情况下,我无法从 Controller 读取全局属性 (App.test)。!?)

最佳答案

这个问题其实和Ember.Object有很大关系。

.extend() 创建一个扩展旧类的新类,在传入的哈希中定义类级属性。

.create() 创建类的新实例,在传入的哈希中定义对象级属性。

这就是为什么在第二种情况下无法读取该属性的原因。如果你想这样做,你需要做:

var App = Ember.Application.extend({});
App.test = 'foo';

在普通的 Ember 应用程序中,您可以创建 App 对象的实例,因为您将直接使用它。

在 ember-cli 生成的 Ember 应用程序中,您不需要创建 App 对象的实例,您只需定义它的类(使用 .extend())。这是因为您不直接使用它,因为 ember-cli 需要该类,因此它可以在内部实例化它之前对其执行自己的操作。

关于javascript - 为什么 ember-cli 使用扩展而不是创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com