我正在尝试一些代码来创建我自己的 DOM 方法,但没有扩展实际的 DOM,类似于 jQuery 的工作方式。到目前为止,这是我的原型:
function Lib( selector ) {
this.el = this._query( selector );
}
Lib.prototype = {
_query: document.querySelectorAll.bind( document ),
_each: function( fn ) {
return [].forEach.call( this.el, fn );
},
hide: function() {
this._each(function( el ) {
el.style.display = 'none';
});
return this;
},
show: function() {
this._each(function( el ) {
el.style.display = 'block';
});
return this;
},
toggle: function() {
this._each(function( el ) {
var hidden = el.style.display == 'none';
el.style.display = hidden ? 'block' : 'none';
});
return this;
}
};
function $( selector ) {
return new Lib( selector );
}
$('div').toggle();
如您所见,我必须不断返回this
才能链接方法。我的大脑现在已经死了,我想不出一种自动化的方法。有什么建议么?