回调函数的学习

简介:   任何语言中,函数都是占据大半江山,学好函数是基本。今日主题,回调函数。  我们先来写两个函数:    1.将函数中的参数,每个都*2,然后push进数组,返回数组    2.将函数中的参数,加1    1 代码很简单,如下:function multiplyBytwo (a,b,c)...

  任何语言中,函数都是占据大半江山,学好函数是基本。今日主题,回调函数。

  我们先来写两个函数:

    1.将函数中的参数,每个都*2,然后push进数组,返回数组

    2.将函数中的参数,加1

    1 代码很简单,如下:

function multiplyBytwo (a,b,c) {
    var i,arr = [];
    for( i= 0;i<arguments.length;i++) {
        arr[i] = arguments[i]*2
    }
    //console.log(arr);
    return arr;
}

调用: multiplyBytwo(1,2,3);//[2,4,6]

2的代码更简单,如下:

function addOne (a) {
    //console.log(a+1);
    return a+1;
}

调用:addOne(2);//3

两个简单的函数和函数调用写好了,但是怎样将这两个函数合在一块呢?能不能以回调函数的形式的传参数呢?

我们都知道,函数的参数可以是变量之类的,也可以是函数之类的,那么我们尝试一下将函数作为参数传进函数,上代码:

function multiplyBytwo_callback(a,b,c,callback) {
    var i=0,arr = [];
    for( i= 0;i<arguments.length;i++) {
        arr[i] = callback(arguments[i]*2)
    }
    console.log(arr);
    return arr;
}

function addOne (a) {
    return a+1;
}
 

上面的一个函数,传入四个参数,我们看第四个参数,在函数体执行的时候,看见它这样写的,callback(***),嗯,就是这样的,它是一个函数,加括号调用了。如果在for循环中 

arr[i] = arguments[i]*2  这样写,就跟刚开始讲的一样,就是将参数*2,但是这样写,
arr[i] = callback(arguments[i]*2),就是将参数*2后再传入callback中,然后在将它赋值给arr[i];

这样就很灵活了,我们想要什么样效果都可以来定义这个callback函数,现在我们定义这样一个函数

function addOne (a) {
    return a+1;
}

然后,调用multiplyBytwo_callback 函数

multiplyBytwo_callback(2,4,8,addOne);


或者:

  multiplyBytwo_callback(2,4,8,function addOne (a) {
    //console.log(a+1);
    return a+1;
  });//[ 5, 9, 17, NaN ]

 
如果想获得前三个元素在调用一些数组的slice方法,
function addOne (a) {
    //console.log(a+1);
    return a+1;
}

function multiplyBytwo_callback(a,b,c,callback) {
    var i=0,arr = [];
    for( i= 0;i<arguments.length;i++) {
        arr[i] = callback(arguments[i]*2)
    }
    var a = arr.slice(0,-1);
    console.log(a);
    return a;
}
multiplyBytwo_callback(1,2,3,addOne);//[ 3, 5, 7 ]

  如有错误,敬请批评。

每日一句:It doesn't matter to be a mass of bruises, and this time I care nothing about。。。

翻译:这一次,遍体鳞伤也没关系;这一次,可以什么都不在乎

 

目录
相关文章
|
15天前
回调函数
回调函数。
5 1
|
14天前
|
人工智能 机器人 中间件
【C++】C++回调函数基本用法(详细讲解)
【C++】C++回调函数基本用法(详细讲解)
|
5月前
|
前端开发 JavaScript 测试技术
理解回调函数
理解回调函数
42 0
|
6月前
【回调函数】
【回调函数】
20 0
|
6月前
|
API C++
回顾C++回调函数
回顾C++回调函数
|
7月前
|
前端开发 JavaScript
将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子
将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子
43 0
|
10月前
|
C++
「C/C++」C/C++ 回调函数
「C/C++」C/C++ 回调函数
回调函数是异步吗?回调函数和异步操作的关系
回调函数是异步吗?回调函数和异步操作的关系
|
Java C语言 C++
c++ 回调函数的使用
java的回调函数可能都不陌生,使用接口interface的方式,在接口中定义回调函数。函数参数可以是interfance。调用函数的时候,实现这个interface的函数即可。
167 0
c++ 回调函数的使用