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

What is the difference between setting properties in a constructor vs in the properties getter?

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

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

嗯,关于功能,两者实现相同。

  • 初始化一个class变量

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

但是,由于您在 CTOR 中初始化了 owner,因此您无法通过 myElement.properties.

获取它

使用静态方法的优点可能是,您无需从 class myElement 创建元素 <my-element> 来获取您在静态方法。

Try logging myElement.properties - and see that you can not find owner listed. you will however find prop1 there.

但是,要获得 owner 的值,您基本上需要实例化 class myElement 或连接一个元素 <my-element> 到 DOM

Try logging myElement.owner - this should return undefined

Try logging new myElement().owner - this should fetch daniel