javascript - 如何在javascript中创建一个元素并向其传递参数?

标签 javascript html web-component

在新的 v1 Web 组件规范中,您可以通过这样的方式创建一个新元素

class gg extends HTMLElement {
    constructor(a) {
        super();
    }
}

customElements.define('gg-gg', gg);

然后你可以创建它的一个新实例,方法如下

<gg-gg></gg-gg>

new gg(1);

甚至

document.createElement("gg-gg");

但在最后一种方式 document.createElement("gg-gg") 中,如何将参数传递给构造函数中的 a 呢?

最佳答案

您可以使用函数创建 class 表达式,其中使用默认参数来设置构造函数

const gcreate = (...props) => {
  const gg = class extends HTMLElement {
    constructor(a = props) {
      console.log(a);
      a.find(prop => 
        typeof prop === "object"
        && !Array.isArray(prop))
        ["def"](789)
      super();
    }
  }
  customElements.define('gg-gg', gg);
  return document.createElement("gg-gg");
}

let g = gcreate(
        // pass parameters
        "abc"
        , 123
        , [4,5,6]
        , {def:(prop) => console.log(prop)}
        , null, void 0
        );

关于javascript - 如何在javascript中创建一个元素并向其传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45536364/

相关文章:

单击任何超链接时打开特定 URL 的 JavaScript

javascript - 在 Javascript 中切换开/关按钮

jquery - 如果确认提示错误,则从复选框中删除勾号

javascript - Web 组件模板错误

javascript - 如何使用 Javascript 调整弹出窗口的大小?

javascript - 无法读取未定义的属性 'main'

jquery - 如何按高度对 DIV 进行排序?

javascript - 如何使用 ngx 数据绑定(bind)将复选框绑定(bind)到选择禁用的属性?

polymer - 如何用 Jest 测试 Web 组件(lit-element)

javascript - 使用 Javascript 的无层 Web 框架?