如何在 polymer 中拥有私有(private)非静态变量?
在:
<polymer-element name="component-one">
<script>
Polymer('component-one', {
internalState = 1,
ready() {
this.anotherInternalState = 1;
}
/* more variables and functions */
});
</script>
</polymer-element>
internalState 和 anotherInernalState 都暴露给外部(例如,可以通过类似的方式访问:
document.querySelector('component-one').internalState
(当从外部更改 internalState 会使组件不稳定时,这可能是不可取的。)
其中:
<polymer-element name="component-two">
<script>
(function() {
var internalState = 1;
Polymer('component-two', {
/* some variables and functions */
});
})();
</script>
</polymer-element>
internalState 对外部是隐藏的,但它是静态的并且在组件的所有实例之间共享。
有没有办法在 polymer 对象中拥有私有(private)非静态变量?
最佳答案
这更像是一个纯 JavaScript 问题,而不是一个 Polymer 问题。从 ES5 开始,JavaScript 中没有“私有(private)实例成员”,尽管 ES6 带来了一些新工具。
我的建议是使用在私有(private)实例变量前加上下划线的旧约定 (_internalState
)。
否则,您必须对 map 和闭包使用技巧。
关于javascript - polymer 中的私有(private)非静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461109/