Anc*_*tRo 10 javascript each jquery
当使用jQuery"each"函数时,有没有办法将参数传递给被调用的函数?
something.each(build);
function build(vars) {
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以简单地执行以下操作,但我想知道是否有一种方法可以直接传递参数.
something.each(function() {
build(vars);
);
Run Code Online (Sandbox Code Playgroud)
mig*_*eva 24
您可以使用闭包来完成上述操作.的.每个函数采用作为参数有两个参数,索引和元件的功能.
您可以调用一个函数来返回一个带有这两个参数的函数,并在那里存储变量,这些变量将在返回函数执行时因JavaScript规范行为而被引用.
这是一个例子:
// closureFn returns a function object that .each will call for every object
someCollection.each(closureFn(someVariable));
function closureFn(s){
var storedVariable = s; // <-- storing the variable here
return function(index, element){ // This function gets called by the jQuery
// .each() function and can still access storedVariable
console.log(storedVariable); // <-- referencing it here
}
}
Run Code Online (Sandbox Code Playgroud)
由于JavaScript作用域的工作原理,storedVariable将由返回的函数引用.您可以使用它来存储任何回调中的变量和访问权限.
我有一个jsFiddle也证明了这一点.请注意页面上的文本输出与HTML窗格中定义的HTML不同.查看函数如何引用存储的变量并将其附加到文本中
以下是关闭的MDN页面以获取更多参考资料https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures
归档时间: |
|
查看次数: |
13582 次 |
最近记录: |