我正在使用javascript制作自己的类方法

.hide = function() {
this.each(function(index){
    this.style.display="none";
});
};


但这行不通。
你能告诉我我做错了吗?

最佳答案

不建议在Javascript中向现有对象添加功能。但是,您可以创建如下的辅助函数:

var hide = function(domEle) {
  domEle.style.display="none";
}


为了使您能够使用语法,可以执行以下操作:


创建一个接受dom元素数组的类。或提供将dom元素添加到数组的功能。
将函数hide添加到上述类中,而不是每次都使用forEach。每个都不属于
JavaScript规范。读取MDN https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array


这是一些执行相同操作的基本代码(我尚未对此进行语法错误测试):

function myLittleJQuery() {
  this._array = [];
}

myLittleJQuery.prototype = {
  add: function(domEle) {
    this._array.push(domEle);
  },

  hide: function() {
    this._array.forEach(function(domEle){
      domEle.style.display = "none";
    })
  }
}

//Usage
var my$ = new myLittleJQuery();
my$.add(someDomEle);
my$.add(someOtherDomEle);

my$.hide();

09-19 22:18