我试图在我的SAPUI5应用程序中实现Component.js但无法理解 .extend&下面一段代码中的.prototype.init.apply方法。
sap.ui.define([
"sap/ui/core/UIComponent"
], function (UIComponent) {
"use strict";
return UIComponent.extend(""** , {**
init: function () {
UIComponent.prototype.init.apply(this, arguments);
// console.log(UIComponent.extend);
UIComponent.prototype.init.apply(this, arguments);
}
});
});
有人可以解释一下吗?
P.S。我是OO Javascript的初学者。
答案 0 :(得分:2)
他们在这里做的非常像Java-ish。使用extend
,他们会创建UIComponent
的子类。
在此子类中,重写了init
方法。当您覆盖父对象的方法时,从覆盖它的方法调用父原始方法是一个好习惯。通过这样做,您可以避免意外情况,例如未在父级定义的变量等。调用父级的原始方法正是init.apply
语句正在执行的操作。虽然这样做两次对我来说没有意义。
答案 1 :(得分:0)
给你一些提示: