博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单理解js回调函数
阅读量:6519 次
发布时间:2019-06-24

本文共 1339 字,大约阅读时间需要 4 分钟。

前言

其实回调函数简单通俗点就是当有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回调函数用法的全部内容,希望对大家的学习和工作能有所帮助。如果有疑问可以留言讨论。

转载于:https://www.cnblogs.com/hpx2020/p/8819084.html

你可能感兴趣的文章
HBuilder使用夜神模拟器调试Android应用
查看>>
GRPC —— 高性能基于 HTTP/2 的 RPC 框架
查看>>
就是要你懂TCP -- 握手和挥手
查看>>
《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》目录—导读
查看>>
《Redis官方教程》-Redis的配置
查看>>
《SOA与REST:用REST构建企业级SOA解决方案》—第1章1.2节推荐阅读
查看>>
ROS机器人程序设计(原书第2版)2.4.14 动态参数
查看>>
Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
查看>>
《Python游戏编程快速上手》一1.3 如何使用本书
查看>>
《Android游戏开发详解》——第1章,第1.3节声明和初始化变量
查看>>
[Google Guava] 排序: Guava强大的”流畅风格比较器”
查看>>
《Node.js入门经典》一1.5 问与答
查看>>
《Visual Studio程序员箴言》----1.2 滚动与导航
查看>>
《JVM故障诊断指南》之1 —— JVM概览与介绍
查看>>
《Spring 5 官方文档》4. 资源(一)
查看>>
Processing编程学习指南2.7 Processing参考文档
查看>>
《HBase实战》一2.6 表扫描
查看>>
架构师速成-架构目标之伸缩性\安全性
查看>>
[LeetCode]--55. Jump Game
查看>>
C++ 虚函数表解析
查看>>