zoukankan      html  css  js  c++  java
  • 简单理解js回调函数

    前言

    其实回调函数简单通俗点就是当有a和b两个函数,当a作为参数传给b,并在b中执行,这时a就是一个回调(callback)函数,如果a是一个匿名函数,则为匿名回调函数那下面们来通过一个实例来具体解释下Javascript回调函数怎么使用。

    实例

    在很久很久以前,有一个人。

     var person;

    他是个人,也就是一个对象。

    person= {}; // 在JavaScript中,花括号就代表是一个对象

    他有个名字叫小明。

    person.name = '小明';

    看一下是不是真的叫小明。

    alert(person.name);

    嗯,有一天,小明捡到了10块钱。

    person.money = '10块钱';

    有了钱就要花,于是他打算把10块钱用掉。

    小明有一个花钱的方法 spendMoney ()

    person.spendMoney =function(){  alert(this.name +"用 "+this.money +" 块钱买了漫画书!"); 

    运行:

    person.spendMoney();
     

    弹出提示:小明用10块钱买了漫画书。

    好了,问题来了,小明花钱就非得买漫画书吗,肯定不是。

    事实情况应该是,这钱怎么办,还是由他自己说了算。因为钱在小明的口袋里。

    所以,就可以用回调函数了。

    回调函数本身就是一个数据类型。

    在javaScript中,函数的地位和java中的Stringintboolean等等都是一样的,都可以看成是一个数据类型。

    既然是数据类型,当然可以当成参数传递。

    于是就应该这样:

    person.spendMoney =function(doSomeThing){  doSomeThing();
     

    打了个括号就是执行函数的意思。

    没打括号的函数,就是和Stringint一样的玩意儿。

    是一个数据类型。

    一样的。

    JAVA里面会这么写:

    String str ="HelloWorld!";

    在JavaScript中,函数也是一样的。

    var say =function(){
     
       alert('HelloWorld');
     
    }

    这时候的say就是一个数据类型。

    因为没有打括号,打了括号他才会执行!

    小明用十块钱做什么,他自己说了算。

    person.spendMoney(function(){});

    这样就是把函数传进去了。

    把函数传入spendMoney方法的目的就是让函数在里面执行的。

    person.spendMoney =function(doSomeThing){  doSomeThing(); 

    所以:

    里面就打了括号,代表要执行这个函数。

    具体做什么,自己决定。

    person.spendMoney(function(){  alert('还是把钱存起来吧!'); })

    总结

    就是可以将函数作为一个参数,传入一个方法内,并且能够在该方法中执行这个函数,这也就是js特有的回调函数的魔力。

    以上就是关于Javascript回调函数用法的全部内容,希望对大家的学习和工作能有所帮助。如果有疑问可以留言讨论。

  • 相关阅读:
    vue项目-百度地图-初始化展示覆盖范围(默认中心点和半径),点击切换中心点,地图落点(带数字)
    echarts地图下钻(全国到省)下钻一次
    JSON取值(key是中文或者数字)方式详解
    Chrome 80跨域cookie无法携带
    将博客搬至CSDN
    Django模板渲染,运行时如果报错:TemplateDoesNotExist at
    使用allure serve查看报告提示allure-results does not exists的解决方法
    jupyter lab不能自动打开浏览器和默认打开chrome浏览器的解决办法
    Chrome浏览器安装SwitchyOmega_Chromium插件,以及导入Burp Suite证书,抓取https请求包
    vue安装
  • 原文地址:https://www.cnblogs.com/hpx2020/p/8819084.html
Copyright © 2011-2022 走看看