这是所有 SAP UI5 Object 的基类。
应用程序中一个使用最广泛的方法:
BaseObject.extend
例如:
var UShellCrossApplicationNavigationMock = BaseObject.extend("sap.ui5.walkthrough.shellMock.UShellCrossApplicationNavigationMock", {});
复制
这个方法创建一个名为 sClassName 的类 sap.ui.base.Object 的子类,并使用 oClassInfo 中包含的信息来丰富它。
oClassInfo 输入参数包含的字段名称如下:
metadata:带有关于类的元数据的(可选)对象字面量。 对象文字中的信息将由 Metadata 的实例包装,并且可能包含以下信息:
- interfaces::
(可选)已实现接口的名称集(默认为无接口){string[]}
- publicMethods:
(可选)应该是类的公共外观的一部分的方法列表{string[]}
- abstract:
(可选)标志,将类标记为抽象(纯信息,默认为 false){boolean}
- final:
(可选)标志,将类标记为 final(默认为 false){boolean}
constructor:用作新类的构造函数的函数。 如果没有给出构造函数,框架会创建一个默认实现,将其所有参数委托给基类的构造函数。
- any-other-name: oClassInfo 中的任何其他属性都被复制到新创建的类的原型对象中。 调用者因此可以向类的所有实例添加方法或属性。 但请注意,给定值在类的所有实例之间共享。 通常,除了声明公共常量外,在这里使用原始值是没有意义的。
如果这样的属性有一个函数作为它的值,并且如果属性名称不是以下划线开头或不带有前缀“on”,则该属性名称将自动添加到类的公共方法列表中。 如果方法的名称与该模式匹配,但并不意味着公开,则不应将其包含在类信息对象中,而应将其分配给原型。
新创建的类的原型对象使用与基类实例相同的原型(原型链)。
即使 oClassInfo 对象中没有元数据条目,也会始终创建元数据对象。 元数据的 getter 始终附加到原型和类(构造函数)本身。
最后但同样重要的是,使用第三个参数 FNMetaImpl 可以指定元数据类的构造函数。 该类的实例将用于表示新创建的类和从它创建的任何子类的元数据。 通常,只有框架会使用这个参数来丰富他们引入的新类层次结构的元数据。