超类的方法不可用

Nic*_*ich 3 sapui5

关于UI5组件的init方法的大多数文档意味着在覆盖它时调用超类的init方法:

sap.ui.commons.Button.prototype.init.apply(this,arguments);

但这不起作用.当调试和检查"sap.ui.commonds.Button"并分析原型时,没有init方法存在 - 所以当然也不适用.SAP使用DataPicker执行此操作,但它也没有可用的init方法.

我做错了什么或者这是一种弃用的做法?

BR,Nico

Tim*_*ach 5

从UI5文档:

如果从另一个具有(或可能获得)init()方法的控件继承,则需要显式调用它...

由于Button控件到目前为止还没有init()函数(但在将来的版本中可能存在),我会这样做,以便将来安全:

 if (sap.ui.commons.Button.prototype.init) {   // check whether superclass has an init() method
  sap.ui.commons.Button.prototype.init.apply(this, arguments);  // call super.init()
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.