sep*_*ans 11 javascript web-component polymer
如何在聚合物中使用私有非静态变量?
在:
<polymer-element name="component-one">
<script>
Polymer('component-one', {
internalState = 1,
ready() {
this.anotherInternalState = 1;
}
/* more variables and functions */
});
</script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
internalState和anotherInernalState都暴露给外部(例如通过以下方式访问:
document.querySelector('component-one').internalState
Run Code Online (Sandbox Code Playgroud)
(从外部更改internalState时可能不合需要使组件不稳定.)
如:
<polymer-element name="component-two">
<script>
(function() {
var internalState = 1;
Polymer('component-two', {
/* some variables and functions */
});
})();
</script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
internalState在外部是隐藏的,但它是静态的,并在组件的所有实例之间共享.
有没有办法在聚合物对象中有一个私有的非静态变量?
这更像是一个纯粹的 JavaScript 问题,而不是 Polymer 问题。从 ES5 开始,JavaScript 中没有“私有实例成员”,尽管 ES6 带来了一些新工具。
我的建议是使用旧的约定,即在私有实例变量前添加下划线 ( _internalState)。
否则,你必须在地图和闭包方面变得棘手。
| 归档时间: |
|
| 查看次数: |
3082 次 |
| 最近记录: |