原型&在SAPUI5中扩展(Component.js)

时间:2016-03-29 11:36:44

标签: javascript sapui5

我试图在我的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的初学者。

2 个答案:

答案 0 :(得分:2)

他们在这里做的非常像Java-ish。使用extend,他们会创建UIComponent的子类。

在此子类中,重写了init方法。当您覆盖父对象的方法时,从覆盖它的方法调用父原始方法是一个好习惯。通过这样做,您可以避免意外情况,例如未在父级定义的变量等。调用父级的原始方法正是init.apply语句正在执行的操作。虽然这样做两次对我来说没有意义。

答案 1 :(得分:0)

给你一些提示:

  1. extend来自sap.ui.base.Object,代表sap.ui.base.ManagedObject.createClass()。感谢@schnoedel指出。

  2. prototype.init.applyarguments对象。