[js]js中回调函数

JavaScript回调与数组方法详解
 //回调函数: 把一个函数当参数传给另个函数


    /*    function f1() {
            console.log('f1');
        }
        function f2(f) {
            f();
            console.log(1);
        }
        f2(f1);*/


    //arr.forEache
    //1.回调函数: 执行5次
    //2.回调函数参数: item,index,arr
    var arr = [11, 22, 33, 44, 55];

    /*arr.forEach(function (i) {
        console.log(arguments);//3个参数[11, 0, Array(5)].
        console.log(i);
    });
    console.log('ok2');*/

    //自己传参
    /*arr.forEach(function (item,index,input) {
        console.log(item);
    });*/


    //forEach的特点
    //1.不返回值
    //2.不修改原来数组

    //但是可以手动修改
    /*var res = arr.forEach(function (item, index, input) {
        input[index] = item * 10;
        console.log(input);
    });
    console.log(arr);
    console.log(res);
*/

    //arr.map 1,克隆一份原arr 2,对克隆的进行修改
    /*   var res = arr.map(function (item, index, input) {
           return item * 10;  //return什么,就相当于修改当前item为啥
       });
       console.log(arr);
       console.log(res);*/
    //匿名函数中this是window

    var obj = {'name': 'maotai'};

    /*arr.forEach(function (item, index) {
        console.log(obj);
    }).call(obj);*/

    //forEach中的this是arr
    //匿名函数中的this是window

    /* arr.forEach(function (item, index) {
         console.log(obj);
     }, obj); //第二个参数意思是将匿名函数中this改为obj(默认window)*/

    //sort不支持传参改变匿名函数this指向
    /*arr.sort(function () {
        console.log(this);
    });*/

    //定时器不支持改变this, 是改变时间的
    /*  setTimeout(function () {

      },2000)*/

    //replace不支持传参改变匿名函数this指向
    /* 'maotai'.replace(/\w/g, function () {
         console.log(this);
     })*/

    //对于不支持第二个参数的,使用bind来改变
    'maotai'.replace(/\w/g, function () {
        console.log(this);
    }.bind(obj));

转载于:https://www.cnblogs.com/iiiiiher/p/9999421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值