理解JavaScript中回调函数的使用

 

首先要理解function 对象,在JavaScript中function和array object,number一样作为一个对象,因此function也可以像普通对象一样可以作为一个参数传递个另一个函数;

 

function parentF(callback){//callback可以任意定义名称,它只是个参数,此时并不能确定callback的类型(是number,object,function都不确定)

 var a=1;

 var b=2;  console.log("parent");  return callback(a,b);

 }

 function childF(a,b){  console.log("child");  return a+b;

 }

 window.onload=function (){

 var result= parentF(childF);  console.log(result);  }

输出结果: 

parent

child

3

以上是一个简单的回调函数。

使用function非继承的方法 call(),apply;

call()

function fn(a,b){

return a*b;

}

function fns(a,b){

 return fn.call(this,a,b);

} window.onload=function(){    console.log(fns(10,11)); }

apply();

function fn(a,b){

return  a*b;

}

function fns(a,b){

return fn.apply(this,[a,b]);

}

function fns1(a,b){

  return fn.apply(this,arguments);

} window.onload=function(){ console.log(fns(10,11));

console.log(fns1(10,11)); }

 

 

posted @ 2017-03-08 11:59  zkr  阅读(180)  评论(0编辑  收藏  举报