天天看点

关于 sap.ui.base.Object 的简要介绍

这是所有 SAP UI5 Object 的基类。

应用程序中一个使用最广泛的方法:

BaseObject.extend

例如:

var UShellCrossApplicationNavigationMock = BaseObject.extend("sap.ui5.walkthrough.shellMock.UShellCrossApplicationNavigationMock", {});           

复制

关于 sap.ui.base.Object 的简要介绍

这个方法创建一个名为 sClassName 的类 sap.ui.base.Object 的子类,并使用 oClassInfo 中包含的信息来丰富它。

oClassInfo 输入参数包含的字段名称如下:

metadata:带有关于类的元数据的(可选)对象字面量。 对象文字中的信息将由 Metadata 的实例包装,并且可能包含以下信息:

  • interfaces::

    {string[]}

    (可选)已实现接口的名称集(默认为无接口)
  • publicMethods:

    {string[]}

    (可选)应该是类的公共外观的一部分的方法列表
  • abstract:

    {boolean}

    (可选)标志,将类标记为抽象(纯信息,默认为 false)
  • final:

    {boolean}

    (可选)标志,将类标记为 final(默认为 false)

constructor:用作新类的构造函数的函数。 如果没有给出构造函数,框架会创建一个默认实现,将其所有参数委托给基类的构造函数。

  • any-other-name: oClassInfo 中的任何其他属性都被复制到新创建的类的原型对象中。 调用者因此可以向类的所有实例添加方法或属性。 但请注意,给定值在类的所有实例之间共享。 通常,除了声明公共常量外,在这里使用原始值是没有意义的。

如果这样的属性有一个函数作为它的值,并且如果属性名称不是以下划线开头或不带有前缀“on”,则该属性名称将自动添加到类的公共方法列表中。 如果方法的名称与该模式匹配,但并不意味着公开,则不应将其包含在类信息对象中,而应将其分配给原型。

新创建的类的原型对象使用与基类实例相同的原型(原型链)。

即使 oClassInfo 对象中没有元数据条目,也会始终创建元数据对象。 元数据的 getter 始终附加到原型和类(构造函数)本身。

最后但同样重要的是,使用第三个参数 FNMetaImpl 可以指定元数据类的构造函数。 该类的实例将用于表示新创建的类和从它创建的任何子类的元数据。 通常,只有框架会使用这个参数来丰富他们引入的新类层次结构的元数据。