带参数的Javascript匿名函数。这些参数定义在哪里?

时间:2017-08-01 17:54:57

标签: javascript jquery

我对使用jQuery替换文本框中的某些字符产生了疑问并且我登陆in this question.接受的答案提示如下:

$("#mySelector").val(function(i, v) { //i, v... where they come from??
return v.replace("#","Custom Text");
});

这很好但我仍然有同样的怀疑。这些参数iv。他们来自哪里以及他们如何充满数据?他们没有在任何地方宣布。在这种情况下,iv如何拥有我需要的数据?

These answers谈论它,但它似乎只是一个过于复杂的解释,应该是什么,一个简单的解释。

所以,问题很简单。世界上那些参数在匿名函数中如何填充数据。如果我没有在任何地方宣布它们,它们来自哪里?

2 个答案:

答案 0 :(得分:4)

当jQuery库调用回调时,它们被设置。请注意,您将函数作为参数传递给$.val函数。 $.val函数将值传递给传递给它的函数。

以下是回调如何工作的简单示例:



function coolFunction(callback) { // accepting callback
  // extra processing here
  callback(1, 2);                 // calling the callback
}

coolFunction(function(a, b) { // passing function as callback
  console.log('annonymous', a, b);
});




答案 1 :(得分:0)

jQuery函数val检查传入其中的参数。当它找到一个函数时,它会为选择器中包含的每个元素调用它,其中i是选择器中元素的索引,而v是值...即元素的值。