關(guān)于Javascript回調(diào)函數(shù)的一個(gè)妙用
前言
其實(shí)回調(diào)函數(shù)簡單通俗點(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ù)用法的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)和工作能有所幫助。如果有疑問可以留言討論。
- javascript回調(diào)函數(shù)的概念理解與用法分析
- JS回調(diào)函數(shù)基本定義與用法實(shí)例分析
- 微信小程序中使用javascript 回調(diào)函數(shù)
- JS回調(diào)函數(shù)簡單用法示例
- 深入理解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)文章
根據(jù)經(jīng)緯度計(jì)算地球上兩點(diǎn)之間的距離js實(shí)現(xiàn)代碼
最近用到了根據(jù)經(jīng)緯度計(jì)算地球表面兩點(diǎn)間距離的公式,然后就用JS實(shí)現(xiàn)了一下,根據(jù)地球是一個(gè)光滑的球面以及并不是一個(gè)真正的圓球體,而是橢球延伸出兩種方法,感興趣的你可以參考下2013-03-03
DOM節(jié)點(diǎn)的替換或修改函數(shù)replaceChild()用法實(shí)例
這篇文章主要介紹了DOM節(jié)點(diǎn)的替換或修改函數(shù)replaceChild()用法,實(shí)例分析了replaceChild()替換DOM節(jié)點(diǎn)的使用技巧,需要的朋友可以參考下2015-01-01
JavaScript實(shí)現(xiàn)的日期控件具體代碼
JavaScript實(shí)現(xiàn)的日期控件,它還會(huì)讀取當(dāng)前的時(shí)間,有需要的朋友可以參考一下2013-11-11
JS正則截取兩個(gè)字符串之間及字符串前后內(nèi)容的方法
這篇文章主要介紹了JS正則截取兩個(gè)字符串之間及字符串前后內(nèi)容的方法,結(jié)合實(shí)例形式簡單分析了JS正則截取字符串操作的常用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
JavaScript輸出所選擇起始與結(jié)束日期的方法
這篇文章主要介紹了JavaScript輸出所選擇起始與結(jié)束日期的方法,涉及javascript結(jié)合HTML5元素操作日期運(yùn)算的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07
JavaScript前端實(shí)現(xiàn)壓縮圖片功能
這篇文章主要介紹了JavaScript前端實(shí)現(xiàn)壓縮圖片功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

