關(guān)于Javascript回調(diào)函數(shù)的一個(gè)妙用
前言
其實(shí)回調(diào)函數(shù)簡(jiǎn)單通俗點(diǎn)就是當(dāng)有a和b兩個(gè)函數(shù),當(dāng)a作為參數(shù)傳給b,并在b中執(zhí)行,這時(shí)a就是一個(gè)回調(diào)(callback)函數(shù),如果a是一個(gè)匿名函數(shù),則為匿名回調(diào)函數(shù)那下面?zhèn)儊硗ㄟ^一個(gè)實(shí)例來具體解釋下Javascript回調(diào)函數(shù)怎么使用。
實(shí)例
在很久很久以前,有一個(gè)人。
var person;
他是個(gè)人,也就是一個(gè)對(duì)象。
person= {}; // 在JavaScript中,花括號(hào)就代表是一個(gè)對(duì)象
他有個(gè)名字叫小明。
person.name = '小明';
看一下是不是真的叫小明。
alert(person.name);
嗯,有一天,小明撿到了10塊錢。
person.money = '10塊錢';
有了錢就要花,于是他打算把10塊錢用掉。
小明有一個(gè)花錢的方法 spendMoney ()
person.spendMoney =function(){ alert(this.name +"用 "+this.money +" 塊錢買了漫畫書!"); }
運(yùn)行:
person.spendMoney();
彈出提示:小明用10塊錢買了漫畫書。
好了,問題來了,小明花錢就非得買漫畫書嗎,肯定不是。
事實(shí)情況應(yīng)該是,這錢怎么辦,還是由他自己說了算。因?yàn)殄X在小明的口袋里。
所以,就可以用回調(diào)函數(shù)了。
回調(diào)函數(shù)本身就是一個(gè)數(shù)據(jù)類型。
在javaScript中,函數(shù)的地位和java中的String
,int
,boolean
等等都是一樣的,都可以看成是一個(gè)數(shù)據(jù)類型。
既然是數(shù)據(jù)類型,當(dāng)然可以當(dāng)成參數(shù)傳遞。
于是就應(yīng)該這樣:
person.spendMoney =function(doSomeThing){ doSomeThing(); }
打了個(gè)括號(hào)就是執(zhí)行函數(shù)的意思。
沒打括號(hào)的函數(shù),就是和String
,int
一樣的玩意兒。
是一個(gè)數(shù)據(jù)類型。
一樣的。
JAVA里面會(huì)這么寫:
String str ="HelloWorld!";
在JavaScript中,函數(shù)也是一樣的。
var say =function(){ alert('HelloWorld'); }
這時(shí)候的say
就是一個(gè)數(shù)據(jù)類型。
因?yàn)闆]有打括號(hào),打了括號(hào)他才會(huì)執(zhí)行!
小明用十塊錢做什么,他自己說了算。
person.spendMoney(function(){});
這樣就是把函數(shù)傳進(jìn)去了。
把函數(shù)傳入spendMoney
方法的目的就是讓函數(shù)在里面執(zhí)行的。
所以:
person.spendMoney =function(doSomeThing){ doSomeThing(); }
里面就打了括號(hào),代表要執(zhí)行這個(gè)函數(shù)。
具體做什么,自己決定。
person.spendMoney(function(){ alert('還是把錢存起來吧!'); });
總結(jié)
就是可以將函數(shù)作為一個(gè)參數(shù),傳入一個(gè)方法內(nèi),并且能夠在該方法中執(zhí)行這個(gè)函數(shù),這也就是js特有的回調(diào)函數(shù)的魔力。
以上就是關(guān)于Javascript回調(diào)函數(shù)用法的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)和工作能有所幫助。如果有疑問可以留言討論。
- javascript回調(diào)函數(shù)的概念理解與用法分析
- JS回調(diào)函數(shù)基本定義與用法實(shí)例分析
- 微信小程序中使用javascript 回調(diào)函數(shù)
- JS回調(diào)函數(shù)簡(jiǎn)單用法示例
- 深入理解Node.js 事件循環(huán)和回調(diào)函數(shù)
- 常用js,css文件統(tǒng)一加載方法(推薦) 并在加載之后調(diào)用回調(diào)函數(shù)
- 對(duì)js中回調(diào)函數(shù)的一些看法
- 淺析JavaScript回調(diào)函數(shù)應(yīng)用
- JS動(dòng)態(tài)插入并立即執(zhí)行回調(diào)函數(shù)的方法
- Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)實(shí)例分析
- js自定義回調(diào)函數(shù)
- 詳解JavaScript的回調(diào)函數(shù)
- javascript回調(diào)函數(shù)詳解
相關(guān)文章
利用 JavaScript 實(shí)現(xiàn)并發(fā)控制的示例代碼
這篇文章主要介紹了利用 JavaScript 實(shí)現(xiàn)并發(fā)控制的示例代碼,本文通過實(shí)例代碼給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12layui-tree實(shí)現(xiàn)Ajax異步請(qǐng)求后動(dòng)態(tài)添加節(jié)點(diǎn)的方法
今天小編就為大家分享一篇layui-tree實(shí)現(xiàn)Ajax異步請(qǐng)求后動(dòng)態(tài)添加節(jié)點(diǎn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09JavaScript版經(jīng)典游戲之掃雷游戲完整示例【附demo源碼下載】
這篇文章主要介紹了JavaScript版經(jīng)典游戲之掃雷游戲?qū)崿F(xiàn)方法,結(jié)合完整實(shí)例形式分析了掃雷游戲的原理與具體實(shí)現(xiàn)流程,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-12-12精通Javascript系列之Javascript基礎(chǔ)篇
javascrpit的基本概念分析,剛開始學(xué)習(xí)js的朋友可以參考下。2011-06-06javascript js 操作數(shù)組 增刪改查的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猨avascript js 操作數(shù)組 增刪改查的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06微信小程序Error:Fail?to?open?IDE問題的解決方法
今天學(xué)習(xí)小程序時(shí)無法通過HBuilderX運(yùn)行微信小程序,查了相關(guān)資料后解決了,下面這篇文章主要給大家介紹了關(guān)于微信小程序Error:Fail?to?open?IDE問題的解決方法,需要的朋友可以參考下2023-04-04JS實(shí)現(xiàn)讀取Excel文件內(nèi)容并生成二維碼
這篇文章主要為大家介紹了如何使用JavaScript實(shí)現(xiàn)讀取Excel文件內(nèi)容并生成二維碼下載到本地,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04JavaScript Window 打開新窗口(window.location.href、windo
本文主要介紹了JavaScript Window 打開新窗口的三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05