有时我会看到 JavaScript 是用一个提供的参数编写的,该参数已经有一个设定值或者是一个带有方法的对象。以这个 jQuery 示例为例:
$(".selector").children().each(function(i) {
console.log(i);
});
当 logging时,当查看 jQuery方法中的选择器子项时i
,您将获得该迭代中任何内容的值。i
each
以这个 Node.js 为例:
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
你可以在这里看到request
并且response
正在被传递,它们包含自己的可以被执行的方法。
对我来说,这看起来像是将一个函数传递给createServer
带有两个已附加方法的参数的函数。
我的问题是多部分的:
- 这些论据从何而来?
- 如果这些只是匿名函数,它们如何接收可以像其他函数一样起作用的参数?
- 我如何创建可以像这样接受我自己的参数的函数?
- 这是否使用了闭包的力量?