在大多数 JavaScript 方法(迭代器)回调中,第一个参数是元素,第二个参数是索引。但对于 jQuery,第二个参数总是元素,第一个参数是索引。为什么它们的格式不同?这是为了避免它们之间的混淆,因为两者都包含诸如 map、filter 等方法。这背后有什么特殊含义吗?我只是好奇想知道。
最佳答案
这是因为 jQuery 依赖 this
;它不需要元素迭代器。
$('selector').each(function(){
// 'this' refers to unwrapped jQuery selector element; no need for arguments == cleaner code
var $this = $(this);
});
在 Vanilla JS 中,迭代器依赖于参数:
[].forEach(function(el, index){
// 'this' refers to Window object; use the argument
el.querySelector('foo')
});
因为 jQuery 可以使用 this
来利用作用域元素,所以它实际上不需要参数。我必须查找库的历史记录才能查看该元素是否作为早期版本中的第二个参数存在。
关于javascript - JQuery 和 JavaScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37981679/