首页 > 解决方案 > 将方法附加到函数原型

问题描述

我正在尝试将方法附加mytest到函数原型:

(function() {
  window.onload = function() {
    var a = (e) => document.querySelector(e);

    a.prototype.mytest = function(e){ ... };
        
    //example div
    a("div").mytest("d");
  }();
})();

但我得到:

未捕获的类型错误:无法设置未定义的属性“mytest”

标签: javascript

解决方案


您的变量a没有原型,因为它使用内联 ES6 箭头语法运行它。

尝试

function a(e) {
    return document.querySelector(e);
}

然后你的代码的其余部分应该可以工作,前提是你的代码中有任何“div”元素

虽然如果你可以像这样设置一个原型函数,还不如清理它并将你的“a”变成一个类,这样你就可以设置不同的属性


推荐阅读