2016-12-24 53 views
0

在Jquery函数(如filter和not)中,可以传递一个传递两个参数的函数。我正在读一本书,它说第一个参数是当前元素的索引,而第二个参数是当前元素。我很困惑。使用第二个参数和使用这个关键词有什么区别。这个关键字是否也指向当前元素?这是否指向当前元素,作为参考,而元素参数是元素。我使用哪一个?Jquery - 将函数传递给过滤器函数,带有两个参数

谢谢!

回答

-1
array.filter(function(currentValue, index, arr), thisValue) 

CurrentValue的(必需的) - 当前元素

索引(可选)的值 - 当前元素的数组索引

ARR(可选) - 阵列对象的当前元素属于到

thisValue(可选) - 要传递给要用作其“this”值的函数的值。 如果此参数为空,则值“undefined”将作为其“this”值传递

+0

OP不问'Array.prototype.filter()'而是'$ .fn.filter' – charlietfl

0

箭头函数保留来自外部作用域的this关键字。

常规功能确实得到更新this

片段中的示例。

var $body = $(document.body); 
 

 
console.log("Testing arrow functions"); 
 
$body.each((idx, el) => { 
 
    console.log(el === this); 
 
    }); 
 

 
console.log("Testing regular functions"); 
 

 
$body.each(function(idx, el) { 
 
    console.log(el === this); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>