乐趣区

关于前端:SAP-UI5-XML-视图在实例化时就已经确定了-BindingSyntax-的实现版本了

我有一个 SAP UI5 利用,在 index.js 里创立一个 XMLView 即 XML 视图的实例。

对于这个 index.js 的更多具体用法,在笔者这篇教程里有介绍:

  • SAP UI5 利用开发教程之二 – SAP UI5 的疏导过程 Bootstrap

在 XML 视图构造函数里,执行 applySettings 办法:

首先须要将 XMLView.create 办法传入的输出参数,即蕴含了 viewName 字段的 JSON 对象的值解析出了:

bindingInfo 的 get 办法主动被触发:

oBindingInfo = this.extractBindingInfo(oValue, oScope, !isObjectType(oKeyInfo.type));

一旦 bindingInfo 的 parse 办法被拜访后,就会主动调用 Object.defineProperty 给 parse 属性设置的 get 办法:

上图就是 SAP UI5 确认 Parser 实现版本的逻辑,如果 Configuration 里的 bindingSyntax 值为 simple,get 返回的 parse 属性就为 bindingParser.simple, 反之返回 ComplexParser.

JavaScript 里通过 Object.defineProperty 设置的 get 函数的作用是什么?

在 JavaScript 中,通过应用 Object.defineProperty 办法能够定义一个对象的属性,并指定该属性的个性(属性描述符)。其中,能够指定 get 函数作为该属性的 getter。

get 函数是一个办法,它能够让咱们在读取一个属性值的时候,主动触发一些逻辑。在应用 get 函数时,咱们不须要在对象上间接定义一个属性,而是在属性描述符中应用 get 办法来定义一个属性的读取器。

上面是一个应用 Object.defineProperty 办法定义 get 函数的例子:

var person = {
  firstName: 'John',
  lastName: 'Doe'
};

Object.defineProperty(person, 'fullName', {get: function() {return this.firstName + ' ' + this.lastName;}
});

console.log(person.fullName); // "John Doe"

在下面的例子中,咱们应用 Object.defineProperty 办法在 person 对象中定义了一个 fullName 属性,并指定了 get 函数。当咱们读取 fullName 属性时,get 函数会主动被调用,并返回 firstName 和 lastName 组成的残缺名称。

在理论开发中,get 函数的利用十分宽泛,比方在 Vue.js 中,就应用了 get 函数来监听数据变动并触发视图的从新渲染。应用 get 函数,能够使咱们更加灵便地管制对象属性的读取逻辑,从而进步代码的可维护性和可读性。

退出移动版