Polymer 什么';s构造函数中初始化的对象与属性之间的差异

Polymer 什么';s构造函数中初始化的对象与属性之间的差异,polymer,polymer-1.0,polymer-2.x,Polymer,Polymer 1.0,Polymer 2.x,我在分配给我的一个项目中也有几次混合。 有些在属性中设置了其对象,如: static get properties() { return { config: { type: Object } } } 而其他mixin则在构造函数中设置其对象,如: constructor() { super(); this.language = { name: "english", label: "EN" } } 我想两者都是全局可访问的,因为

我在分配给我的一个项目中也有几次混合。 有些在属性中设置了其对象,如:

static get properties() {
  return {
    config: {
      type: Object
    }
  }
}
而其他mixin则在构造函数中设置其对象,如:

constructor() {
  super();

  this.language = {
    name: "english",
    label: "EN"
  }
}
我想两者都是全局可访问的,因为mixin到处都是加载的。 但这两种实现之间有什么区别

编辑(附加代码)

这些mixin通过以下方式创建:

MyMixin = function (superClass) {
  return class extends superClass {

    static get properties() {
      return {
        config: {
          type: Object
        }
      }
    }

    constructor() {
      super();
    }
class HomePage extends MyMixin(Polymer.Element) {
  ...
}
或其他方法:

MyMixin = function (superClass) {
  return class extends superClass {

    static get properties() {
      return {
      }
    }

    constructor() {
      super();
      this.language = {
        name: "english",
        label: "EN"
      }
    }
另一个组件使用它们的方式如下:

MyMixin = function (superClass) {
  return class extends superClass {

    static get properties() {
      return {
        config: {
          type: Object
        }
      }
    }

    constructor() {
      super();
    }
class HomePage extends MyMixin(Polymer.Element) {
  ...
}

通过Properties对象创建的属性映射为HTML属性,这意味着您可以拥有数据绑定,例如:

<my-component config="[[someContent]]"></my-component>
会回来的

{
  name: "english",
  label: "EN"
}
但是

将返回未定义的和

<my-component language="[[someContent]]"></my-component>


不起作用

我明白了,但这是混音。你没有给它们赋予属性,所以看起来没有区别。那么我不理解这个问题,请再发一些代码。你知道mixin只是父类的另一个词吗?所以来自mixin的properties对象将与来自component的属性合并,所以mixin的properties对象将映射为属性。