"超过最大堆栈大小"当使用" this.super"在Polymer层次结构中

时间:2014-04-17 22:54:38

标签: javascript inheritance polymer

当我们有具有被覆盖的父函数的元素层次结构时,我们会不时遇到“超出最大堆栈大小”。最近,我发现错误在这样的情况下蔓延:

<polymer-element name="element-a" noscript></polymer-element>

<polymer-element name="element-b" extends="element-a">
  <script>
    Polymer('element-b', {
      attached: function () { this.super(); }
    });
  </script>
</polymer-element>

<polymer-element name="element-c" extends="element-b">
  <script>
    Polymer('element-c', {
      attached: function () {this.super();  }
    });
  </script>
</polymer-element>

http://jsbin.com/guqeyome/2/edit

我的想法是,如果元素A没有“附加”函数,则元素C中的超级调用最终将不会调用任何内容。相反,它调用元素B的“附加”函数,它会旋转无限递归情况。解决方案是在元素A中有一个空的“附加”函数。

这是设计的吗?难道我做错了什么?这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

&#34;回答&#34;对这个问题: