javascript - 如何访问组件脚本中的私有(private)对象?

标签 javascript polymer web-component

this question OP询问如何避免将组件中的私有(private)对象暴露给外部。我一直在谷歌上搜索,但找不到一种相反的方法。假设我有下面的组件,并且我想从我的网页或父组件访问 privateObj。如何使用 JavaScript 和 Polymer API 来完成此操作?

<polymer-element name="animating-element">
   <script>    
     var privateObj = {};

     privateObj.internalState = 0; 

     //private static method
     privateObject.setupState = function(polymerObject) {
        if(polymerObject.stateExposedToOutside == /* some conditions */) { 
           privateObject.internalState = 1;
        }
     }

     Polymer('animating-element', {
        stateExposedToOutside: 0,
        ready: function() {

          privateObj.setupState(this);
          this.animate();

        },
        animate: function() {

        }
      });    
   </script>
</polymer-element>

最佳答案

您可以在 Polymer 构造函数中创建一个 public 方法,该方法将返回 privateObj 的值

 privateObjValue:function(){
   return privateObj;
 }

现在您可以使用 this.privateObjValue() 读取对象的值(不确定它在 Polymer 0.5 中如何工作)

关于javascript - 如何访问组件脚本中的私有(private)对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044835/

相关文章:

javascript - 从 Promise 中提取 .then 和 .catch

javascript - 为什么我不能在元素上调用 Polymer 函数?

javascript - 将 <content> 内的节点传递给嵌套组件元素

css-selectors - 我如何编写影子 dom *在*大多数 child 之后选择特定元素?

html - 使用html中的react组件作为html标签

JavaScript:访问在外部 .js 文件中定义的变量

javascript - 在 Angular 中使用什么更好 - src 或 [src]

javascript - 如何迁移我的旧 js 代码以使用react?

javascript - Polymer 1.0 尝试制作一种类似于核心 split 器的 split 器,可以称为铁 split 器

javascript - ES5 编写 Web 组件类的方式是什么?