前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈js回调函数

浅谈js回调函数

作者头像
剽悍一小兔
发布2018-05-17 12:06:25
3.7K0
发布2018-05-17 12:06:25
举报
文章被收录于专栏:web编程技术分享

在JavaScript中,刚开始学习的时候,很多人感到最困惑的就是回调函数了。本文通过一个小小的例子来分析回调函数的用法。

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

代码语言:javascript
复制
var  person;

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

代码语言:javascript
复制
person= {}; // 在JavaScript中,花括号就代表是一个对象

他有个名字叫小明。

代码语言:javascript
复制
person.name = '小明';

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

代码语言:javascript
复制
alert(person.name);

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

代码语言:javascript
复制
person.money = '10块钱';

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

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

代码语言:javascript
复制
person.spendMoney =function(){   alert(this.name +"用 "+this.money +" 块钱买了漫画书!");    }

运行:

代码语言:javascript
复制
person.spendMoney();

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

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

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

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

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

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

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

于是就应该这样:

代码语言:javascript
复制
person.spendMoney =function(doSomeThing){   doSomeThing();   }

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

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

是一个数据类型。

一样的。

JAVA里面会这么写:

代码语言:javascript
复制
String str ="HelloWorld!";

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

代码语言:javascript
复制
var  say =function(){ 

     alert('HelloWorld');

}

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

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

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

代码语言:javascript
复制
person.spendMoney(function(){});

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

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

所以:

代码语言:javascript
复制
person.spendMoney =function(doSomeThing){   doSomeThing();  }

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

具体做什么,自己决定。

代码语言:javascript
复制
person.spendMoney(function(){   alert('还是把钱存起来吧!');  });

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

免责声明: 博客中所有的图片素材均来自百度搜索,仅供学习交流,如有问题请联系我,侵立删,谢谢。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.08.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档