2017-08-01 67 views
1

我有一个疑问使用jQuery在文本框代替某些字符与我登上in this question.接受的答案建议是这样的:带参数的Javascript匿名函数。这些参数在哪里定义?

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

这工作正常,但我仍然有同样的疑问。这些参数,iv。他们来自哪里以及他们如何填充数据?它们没有在任何地方宣布。在这种情况下,iv如何获得我需要的数据?

These answers谈论它,但它似乎只是一个过于复杂的解释,应该是一件容易的事情来解释。

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

+4

阅读文档:http://api.jquery.com/val/#val-function – Adam

回答

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

这是怎么了应该写一个答案。简短,简洁,易于理解。谢谢! – SamyCode

+0

@SamyCode,很高兴我能帮到你!感谢你的接纳。 –

0

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