JavaScript,`this`和Polymer

时间:2016-12-20 15:59:40

标签: javascript polymer

我目前正试图想出一种格式化我的Polymer / Web Component JavaScript的方法,这样它很整洁,可以用Jest进行单元测试。

我已经提出了大量的解决方案;但是,我写它的方式破坏了'this'与创建的Polymer组件的正确绑定。我正在试图找到一种正确绑定'this'的方法,但到目前为止它还没找到我。

这是我到目前为止所拥有的:

'use strict';

// Register element with Polymer
if (window && window.Polymer) {
  Polymer(someElement());
}

/**
 * Some Element
 */
function someElement() {

  return {
    is: 'some-element',

    properties: {
      /**
       * Some Data
       */
      someData: {
        type: Array,
        notify: true,
        value: [],
      },

      /**
       * Selected Object
       */
      selected: {
        type: Object,
      }
    },

    publicFn1,
    publicFn2,

    _privateFn1
  };

  /* Public API
   * ====================================================== */

  /**
   * Public Function 1
   */
  function publicFn1() {
    return this;
  }

  /**
   * Public Function 2
   */
  function publicFn2() {
    return this;
  }

  /* Private API
   * ====================================================== */

  /**
   * Private Function 1
   */
  function _privateFn1() {
    return this;
  }

}

// Export for testing
if (typeof module !== 'undefined' && module.exports) {
  module.exports = someElement();
}

0 个答案:

没有答案