setTimeout与回调函数

回调函数很简单,就是一个函数名,如object.οnclick=a,回调函数的形式就是个函数名,不带括号

object.οnclick=a

一般a=function(  ){ alert (1) },所以object.οnclick=a相当于

object.οnclick=function(  ){

 alert(1);

}

==============================================================================

<script>

function move (m) {
alert(m);
}
setTimeout( move,1000);

</script>

setTimeout( "move(   )",1000 )相当于setTimeout( move,1000),前者带引号,带括号,可以传参数,后者如果要传参数,要写成的形式为setTimeout( function(  ){ move(50) },1000),而不能写成setTimeout( move(50),1000),因为这个形式会马上执行move函数,而非等到1秒后。

setTimeout( function(  ){ move(50) },1000)

等价于:

setTimeout( ”move(50)”,1000) 

就好象:

object.οnclick=a,这里如果要给a加参数的话,不能 object.οnclick=a(m),而是应该

object.οnclick=function(  ){

    a(m);

}

=========================================

jquery中有同样问题:

$.get('myhtmlpage.html', myCallBack);这样没有问题,但是如果要传参数,写成以下形式:

$.get('myhtmlpage.html', myCallBack(param1, param2)),则是错误的写法,因为会立刻执行回调函数,正确形式为:

$.get('myhtmlpage.html', function(  ){
  myCallBack(param1, param2);
});

为什么匿名函数可以替代回调函数就是因为:

function(  ){
  myCallBack(param1, param2);
}

相当于

var f=function(  ){
  myCallBack(param1, param2);
}

这里的f可以替换成任何其它的名字,也就是说,这里的f就是模糊代表了一个回调函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值