gpt4 book ai didi

javascript - 干 : Make all functions "return this"

转载 作者:行者123 更新时间:2023-11-29 18:25:09 25 4
gpt4 key购买 nike

我正在试验一些代码来创建我自己的 DOM 方法,但没有扩展实际的 DOM,类似于 jQuery 的工作方式。到目前为止,这是我的原型(prototype):

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 才能链接方法。我的大脑现在已经死了,我想不出一种自动化的方法。有什么建议吗?

最佳答案

...我没有看到自动化的真正优势。

考虑到每个方法只定义一个在 _each 中运行的函数,我会攻击它,因为它可能会回答您的实际问题。函数生成器采用 _each 的函数并将生成的函数添加到名称下的原型(prototype)可能会解决这两个问题。

虽然我不确定实现情况。

关于javascript - 干 : Make all functions "return this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com