在构造函数中设置属性与在属性 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
在 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 undefinedTry logging
new myElement().owner
- this should fetch daniel