全国校区

成都总校

重庆分校

武汉分校

西安分校

028-86261949

当前位置: 首页 > 技术交流 > js深入浅出3种回调函数用法

js深入浅出3种回调函数用法

2021/02/02 17:52 分类: 技术交流 浏览:0

js深入浅出3种回调函数用法

 

本文主要讲解js中重点3种回调函数的使用方法,深入浅出的诠释了回调函数的作用,有一定经验的小伙伴都知道,如果能把回调函数合理使用起来的话,可以大大减少代码的冗余度,增强代码的可读性,同时也方便了后期的维护,让你有更多的时间去处理那些当务之急.

 

 

其实回调函数大体上可以分为以下三类用法:

  1. 直接回调
  2. call回调
  3. apply回调

 

有些小伙伴又会问道:你说这么好用的回调函数,我怎么使用呢?它的运用场景又是什么呢?

其实使用回调主要还是解决,当很多地方都需要调用同一个函数,并且这个函数根据不同的需求,作不同的事件处理时,此时使用回调函数就非常适应了.

 

那接下来,让我们看一看具体的实例,让大家对回调函数有更深入的理解应用场景

 

方式一: 直接使用回调函数

        function boy() {

            alert('我是小明,晚上有空');

        }

 

        function girl() {

            alert('哈哈...');

        }

 

//公共函数

        function father(callback) {   

            callback();

            callback.call();

        }

 

        father(boy);      //传boy,回调boy函数  

        father(girl);     //传girl函数,回调girl函数

 

注意:此时如果不传参数,callback()和callback.call()功能一样哦

 

方式二: 使用call和apply回调

 

在使用之前,让我们先来看一下call和apply之间的区别吧!帮助大家更容易理解

        

call(this,参数1,参数2,参数3,...)

       apply(this,[参数1,参数2,参数3,...])

 

 

其实从上面的使用方法来看,call和apply都差不多,只不过是语法有所不同,参数部分,一个是直接写参数,一个是数组列表.其中两个方法都可以改变this的指向为目标对象,具体细节,我们使用示例来演示.

 

示例一: 方法类中的回调

 

    function son(name) {

        this.sonName = name;

        this.showSonName = function () {

            alert(this.sonName);       //弹出 小雕蚕  

            alert(this.fatherName);    //弹出father,这是父级中的属性,有没有php extends的感觉  

        }

    }

 

    function father(name) {

        this.fatherName = 'father';

        this.showFatherName = function (_callback) {

            _callback = eval(_callback);

            _callback.call(this, name);

            //_callback.apply(this,Array(name));  

        }

    }

    var ff = new father("小雕蚕");

    ff.showFatherName('boy');     //传字符串的时候,使用回调的时候,要用eval转换一下  

    ff.showSonName();

 

当使用call进行回调的时候,call中的this方法,会改变this指向,会继承son的方法,并替换

 

示例二: 域中回调

    var son = {

        name: "张三疯",

        getname: function (name) {

            this.fathername();    //弹出 陆小凤  

            this.name = name;

            alert(this.name);     //弹出 小明

        }

    }

 

    var father = {

        init: function (_callback, name) {

            _callback = eval(_callback);

            _callback.apply(this, Array('小明'));

        },

        fathername: function () {

            alert('陆小凤');

        }

}

 

father.init('son.getname');

 

当使用apply进行回调的时候,apply中的this方法,会改变this指向,会继承son的方法,并替换

 

总结:

以上为本期给大家分享的文章内容,如果有什么不理解的地方,可以和小编联系,进行深度技术交流,感谢大家的查阅!后期还会分享更多有深度的文章,请多多关注!

#标签:H5前端,js,回调函数

深圳SEO优化公司盐田建站观澜企业网站制作大鹏seo坂田营销型网站建设宝安设计公司网站坪山网络推广同乐营销网站塘坑百度关键词包年推广广州网站优化坑梓网站开发观澜网站优化按天计费罗湖网站优化按天扣费大芬网站设计南澳模板推广罗湖网站推广方案沙井关键词按天收费惠州网站推广工具塘坑网站建设设计大浪SEO按天扣费龙华百度网站优化同乐网站优化按天收费南澳企业网站建设同乐关键词按天收费坂田网站制作设计双龙百度竞价平湖网页制作宝安建站南澳网站改版大浪关键词按天收费坪山百度标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化