javascript - 如何在 Google Polymer 2 中访问 'properties'?

标签 javascript polymer es6-class polymer-2.x

在 Polymer 1.0 中,我可以使用以下方式声明属性:

properties: {
    salary: {
        type: Number,
        value: 80
    }
}

现在在 Polymer 2.0(创建一个类)中,我应该编写一个如下方法:

static get properties() {
    return {
        salary: {
            type: Number,
            value: 80
        }
    }
}

但现在 this.propertiesnull。如何访问 properties 字段(而不是 properties 的值)?

最佳答案

this.properties 尝试访问实例字段(不包括静态字段)。由于 properties 是一个 static 字段,因此您必须使用 this.constructor.propertiesXFoo.properties >.

示例:

class XFoo extends Polymer.Element {
  static get properties() { ... }

  constructor() {
    super();

    // this.constructor === XFoo
    console.log('this.constructor.properties', this.constructor.properties);
    console.log('XFoo.properties', XFoo.properties);
  }
}

codepen

关于javascript - 如何在 Google Polymer 2 中访问 'properties'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43328333/

相关文章:

vue.js - 在 vue/vuex(/flux?) 中使用 ES6 类是一种反模式吗?

Javascript:如何通过元素名称而不是 XML 树位置查找子节点?

javascript - LitElement connectedCallback() 与 firstUpdate()

dart - 如何从选择事件中获取选定菜单项的纸张菜单按钮

unit-testing - 如何在 Jest 中测试从构造函数调用然后调用其他异步函数的 init() 函数

ecmascript-6 - 在 ES6 中通过 Proxy 捕获类定义

javascript - 显示部分图像(图像条中的子图像)而不压缩它?

javascript - 为什么在iife中使用赋值运算符时 'this'指向 'window' obj?

javascript - 使用 AngularJs 更改输入日期的格式未按预期工作

javascript - Polymer:无法在 <paper-button> 中使用 onclick 操作触发 jQuery 代码