参数为函数——回调?

参数为函数——回调?

参数如果传入的是一个函数名,在当前函数中运行了这个参数,这就是回调。

<script>

       function fn5(o,fn){ //注意:传入的是函数名,而不是函数,没有括号

           o.a += 1;

           fn(o);

       }

       function fn6(o){

           o.a += 10;

       }

       function fn7(o){

           o.b=20;

       }

       var obj4={a:1};

       fn5(obj4,fn6); //此处的obj4.a为12

       fn5(obj4,fn7); //此处obj4.a为2,obj4.b为20

       console.log(obj4);

    </script>

分析: fn5( obj4,fn6 ); 此处调用fn5,然后参数分别为obj4对象和fn6对象,那么o.a += 1;即obj4.a = a+1即obj4.a = 2; 然后下一语句块相当于fn6( obj4 )即调用了fn6( obj4 );即obj4.a = a+10;即前面得出a等于2,此时obj4.a=12;

     fn5(obj4,fn7); 此处调用fn5,然后参数分别为obj4对象和fn7对象,那么o.a += 1;即obj4.a = a+1又a=1;则obj4.a = 2; 然后下一语句块相当于fn7( obj4 )即调用了fn7( obj4 );即obj4.b = 20;则此时obj4.a=2;  obj4.b=20;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值