sencha touch 2.0中的Extend和Require属性有什么区别?

时间:2014-04-28 09:15:46

标签: extjs sencha-touch sencha-touch-2

基本上到目前为止我所经历的是:

扩展

阅读here

  

基本上扩展意味着子类化,其中包含所有属性   父类可以继承到子类中。

需要:

阅读here

Loads all classes by the given names and all their direct dependencies.

我认为这些类似我错了吗?

我无法找到任何其他差异,有人可以解释其中的区别吗?

2 个答案:

答案 0 :(得分:4)

<强>扩展 子类化意味着如果你创建一个扩展类A,B的类B可以被视为A,并继承方法和属性。 A的方法和属性成为新B类的一部分。

<强>要求 这只是一个加载机制,可以确保在使用之前加载一些必需的类。例如,如果您需要显示消息框,则会调用:

Ext.Msg.confirm("Confirmation", "Do you want to add " + value  + " to the database ?");

Ext.Msg 不是你班级的一部分,你基本上只是告诉系统显示一个Popup。但是,如果您在应用程序启动时执行此操作,则在加载类 Ext.Msg 之前,它将失败。

总结:

延期 =&gt;当你需要成为一个X级时

需要 =&gt;当你需要使用类X

答案 1 :(得分:0)

扩展 - 该类将扩展到一个父类。你可以在控制器或商店或模型中看到这个扩展到一个父类

例如

Ext.define("MyApp.controller.ExtendParent", {
    extend: "Ext.app.Controller",

需要 - 需要一个或多个其他类功能的类。

Ext.define("MyApp.controller.ExtendParent", {
    extend: "Ext.app.Controller",
    requires: [
        'Ext.MessageBox',
        'MyApp.store.ParentStore',
        'MyApp.view.ParentView'
    ],