關於Javascript回調函數的一個妙用

相信在剛開始學習JavaScript的時候,不少人感到最困惑的就是回調函數了。本文經過一個小小的例子來分析回調函數的用法。對你們學習Javascript回調函數頗有幫助,有須要的能夠來參考學習。java

前言函數

其實回調函數簡單通俗點就是當有a和b兩個函數,當a做爲參數傳給b,並在b中執行,這時a就是一個回調(callback)函數,若是a是一個匿名函數,則爲匿名回調函數那下面們來經過一個實例來具體解釋下Javascript回調函數怎麼使用。學習

實例this

在好久好久之前,有一我的。code

var person;

他是我的,也就是一個對象。對象

person= {}; // 在JavaScript中,花括號就表明是一個對象

他有個名字叫小明。ip

person.name = '小明';

看一下是否是真的叫小明。回調函數

alert(person.name);

嗯,有一天,小明撿到了10塊錢。io

person.money = '10塊錢';

小明有一個花錢的方法 spendMoney ()有了錢就要花,因而他打算把10塊錢用掉。function

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特有的回調函數的魔力。

相關文章
相關標籤/搜索