美文网首页js css html
SAP UI5 XML 视图在实例化时就已经确定了 Bindin

SAP UI5 XML 视图在实例化时就已经确定了 Bindin

作者: _扫地僧_ | 来源:发表于2023-02-22 12:37 被阅读0次

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

    关于这个 index.js 的更多详细用法,在笔者这篇教程里有介绍:

    在 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 函数,可以使我们更加灵活地控制对象属性的读取逻辑,从而提高代码的可维护性和可读性。

    相关文章

      网友评论

        本文标题:SAP UI5 XML 视图在实例化时就已经确定了 Bindin

        本文链接:https://www.haomeiwen.com/subject/sdbokdtx.html