我目前正试图想出一种格式化我的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();
}