我正在刷回回调函数,并从http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/#看到以下段落
"当我们将回调函数作为参数传递给另一个函数时,我们只传递函数定义.我们不是在参数中执行函数.换句话说,我们没有传递函数与尾对执行括号()就像我们执行函数时一样.
并且由于contains函数在其参数中具有回调函数作为函数定义,因此它可以随时执行回调."
有人可以解释一下吗?以下是他们提供的两个例子.
?//The item is a callback function
$("#btn_1").click(function() {
alert("Btn 1 Clicked");
});
Run Code Online (Sandbox Code Playgroud)
这是另一个例子:
var friends = ["Mike", "Stacy", "Andy", "Rick"];
?
friends.forEach(function (eachName, index){
console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick?
});
Run Code Online (Sandbox Code Playgroud)
"请注意,回调函数不会立即执行.它在包含函数体内的某个指定点处被"回调"(因此得名).所以,即使第一个jQuery示例如下所示:
//The anonymous function is not being executed there in the parameter. ?
?//The item is a callback function
$("#btn_1").click(function() {
alert("Btn 1 Clicked");
});
Run Code Online (Sandbox Code Playgroud)
稍后将在函数体内调用匿名函数.即使没有名称,它仍然可以通过包含函数的arguments对象来访问."
对于第一个使用jquery的例子,他们究竟在说什么.如果单击#btn_1元素,是否会执行匿名函数?我假设如果单击按钮将执行它,但该段落的措辞令人困惑?
同样,对于第二个例子,他们不需要调用他们作为参数传递的函数吗?