首页 > 解决方案 > 如何在对象项中添加两个对象

问题描述

最近,我问了一个关于如何为 addEventListener 创建 shortand 的问题,结果是:

var dom = {
  id: function(elementId) {
    var element = document.getElementById(elementId);
    return Object.create(element, {
      on: {
        value(event, fn, options) {
          element.addEventListener(event, fn, options);
        }
      }
    })
  }
};

如果我想添加两个 Object.create 怎么办?我该如何退货?甚至可能吗?

标签: javascript

解决方案


如果我正确理解您的问题,您可以向 dom 添加几个函数并通过在每个函数中返回 this 来链接它们。然后像这样称呼他们:

dom.id("el").on("click",()=>console.log("clicked") ).changeText("replacement text");

var dom = {
  id: function(elementId) {
    var element = document.getElementById(elementId);
    return Object.create(element, {
      on: {
        value(event, fn, options) {
          element.addEventListener(event, fn, options);
          return this;
        }
      },
      changeText: {
        value(text) {
          element.innerText = text;
          return this;
        }
      }
    })
  }
};

dom.id("el").on("click", () => console.log("clicked") ).changeText("replacement text");
<div id="el">This text will be replaced</div>


推荐阅读