Ben*_*min 3 javascript jquery delegates function
我想将一个函数传递给另一个函数.我认为像这样传递的函数是调用委托人吗?我很难在网上找到这种事情的好解释.这是正确的方法吗?
function getCellContentByColumnIndex = function(row, index) {
return $(row.children().get(index)).text();
}
function naturalSort(a, b, func) {
//...
var $a = func(a);
var $b = func(b);
//...
}
//usage
naturalSort(x, y, getCellContentByColumnIndex);
Run Code Online (Sandbox Code Playgroud)
你的代码:
function getCellContentByColumnIndex = function(row, index) {
return $(row.children().get(index)).text();
}
Run Code Online (Sandbox Code Playgroud)
是语法错误.以下是函数声明:
functon foo() {}
Run Code Online (Sandbox Code Playgroud)
这是一个函数表达式:
var foo = function(){}
Run Code Online (Sandbox Code Playgroud)
这是一个命名函数表达式:
var foo = function bar(){}
Run Code Online (Sandbox Code Playgroud)
这里有许多关于差异的答案,在文章命名函数表达式揭秘中有一个详细的解释,它还涵盖了函数声明和表达式的许多其他方面.
术语"匿名函数"是一个函数表达式的术语,它没有名称,也没有分配给任何东西,例如
someFn( function(){...} )
Run Code Online (Sandbox Code Playgroud)
someFn调用where 并传递一个没有名字的函数.可以为其分配名称,也可以不分配名称someFn.Ic可以被引用为arguments[0].
传递一个函数不是委托,这是将侦听器放在父元素上并捕获冒泡事件的行话的行话,在它可以替换表示单个侦听器的表中每个单元格上的单击侦听器时,它是首选桌子.
无论如何,传递函数就像传递任何其他对象一样:
function foo(){
alert('foo');
}
function callIt(fn) {
fn();
}
callIt(foo); // 'foo'
Run Code Online (Sandbox Code Playgroud)
在上面,foo传递给callIt并分配给局部变量fn,然后被调用.
| 归档时间: |
|
| 查看次数: |
7528 次 |
| 最近记录: |