当我们有具有被覆盖的父函数的元素层次结构时,我们会不时遇到“超出最大堆栈大小”。最近,我发现错误在这样的情况下蔓延:
<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中有一个空的“附加”函数。
这是设计的吗?难道我做错了什么?这是一个错误吗?
答案 0 :(得分:0)
&#34;回答&#34;对这个问题:
super
,就确保存在超级函数。