这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
相信在刚开始学习 JavaScript 的时候,很多人感到最困惑的就是回调函数了。本文通过一个小小的例子来分析回调函数的用法。对大家学习 Javascript 回调函数很有帮助,有需要的可以来参考学习。
前言
其实回调函数简单通俗点就是当有 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 中的
,
- String
,
- int
等等都是一样的,都可以看成是一个数据类型。
- boolean
既然是数据类型,当然可以当成参数传递。
于是就应该这样:
- person.spendMoney = function(doSomeThing) {
- doSomeThing();
- }
打了个括号就是执行函数的意思。
没打括号的函数,就是和
,
- String
一样的玩意儿。
- int
是一个数据类型。
一样的。
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 回调函数用法的全部内容,希望对大家的学习和工作能有所帮助。如果有疑问可以留言讨论。
来源: http://www.phperz.com/article/17/0523/332272.html