javascript - JQuery 和 JavaScript 方法

标签 javascript jquery methods arguments

在大多数 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/

相关文章:

java - 编写方法重载的最佳方法是什么?

java - 创建一个从限定名称调用第二个方法的方法

javascript - 如何使用构造函数中创建的方法来更新同一构造函数中的另一个变量?

javascript - 我怎样才能得到sectionid

javascript - 一个文档中针对不同 DIV 的多种打印样式

javascript - 重温站点优化经验法则 : JavaScript still necessary at the bottom with modern browsers?

javascript - 使用 javascript queryselectorall 而不是 jquery 选择器

javascript - 打印后页面不重新加载

javascript - 在 Javascript 中拖放 unicode 的问题

javascript - javascript 函数 toLocaleDateString() 的错误日期