在构造函数中设置属性与在属性getter中设置属性有什么区别?

时间:2017-07-31 18:01:07

标签: polymer-2.x

在Polymer 2 docs中,他们使用构造函数来设置this.owner =“daniel”,然后他们将展示如何使用static get properties()设置属性。

在JSConsole中,我可以使用myelement.owner和myelement.prop1,如果我dir(myelement)我可以看到所有者和prop1那里......那么有什么区别?

1 个答案:

答案 0 :(得分:2)

嗯,关于功能,两者都实现了相同的目标。

  • 初始化类变量

时间轴真的有利于构造函数初始化变量。

但是,由于您在CTOR中初始化所有者,因此无法通过myElement.properties获取。

使用静态方法的优点可能是,您无需从类<my-element>创建元素myElement来获取您在静态方法中定义的任何属性。

  

尝试记录myElement.properties - 并查看您找不到列出的所有者。但是你会在那里找到prop1。

但是,要获得所有者的值,您基本上需要实例化类myElement或将元素<my-element>连接到DOM

  

尝试记录myElement.owner - 这应该返回undefined

     

尝试记录new myElement().owner - 这应该抓取daniel