匿名函數(shù)

匿名函數(shù)

匿名函數(shù)
沒有實(shí)際名字的函數(shù)

  • 首先我們聲明一個(gè)普通函數(shù):
//聲明一個(gè)普通函數(shù)除破,函數(shù)的名字叫fn
function fn(){
    console.log("張培躍");
}
然后將函數(shù)的名字去掉即是匿名函數(shù):


//匿名函數(shù)牧氮,咦,運(yùn)行時(shí)瑰枫,你會發(fā)現(xiàn)報(bào)錯啦踱葛!
function (){
    console.log("張培躍");
}
  • 到此,你會發(fā)現(xiàn)單獨(dú)運(yùn)行一個(gè)匿名函數(shù)光坝,由于不符合語法要求尸诽,報(bào)錯啦!解決方法只需要給匿名函數(shù)包裹一個(gè)括號即可
//匿名函數(shù)在其它應(yīng)用場景括號可以省略
(function (){
    //由于沒有執(zhí)行該匿名函數(shù)盯另,所以不會執(zhí)行匿名函數(shù)體內(nèi)的語句性含。
    console.log("張培躍");
})
如果需要執(zhí)行匿名函數(shù),在匿名函數(shù)后面加上一個(gè)括號即可立即執(zhí)行鸳惯!


(function (){
    //此時(shí)會輸出張培躍
    console.log("張培躍");
})()
倘若需要傳值商蕴,直接將參數(shù)寫到括號內(nèi)即可:
(function (str){
    //此時(shí)會輸出張培躍好帥!
    console.log("張培躍"+str);
})("好帥芝发!")

匿名函數(shù)的應(yīng)用場景

  • 事件
<input type="button" value="點(diǎn)我靶魃獭!" id="sub">


<script>
    //獲得按鈕元素
    var sub=document.querySelector("#sub");
    //給按鈕增加點(diǎn)擊事件辅鲸。
    sub.onclick=function(){
        alert("當(dāng)點(diǎn)擊按鈕時(shí)會執(zhí)行到我哦格郁!");
    }
</script>
  • 對象
var obj={
    name:"張培躍",
    age:18,
    fn:function(){
        return "我叫"+this.name+"今年"+this.age+"歲了!";
    }
};
console.log(obj.fn());//我叫張培躍今年18歲了瓢湃!
  • 函數(shù)表達(dá)式
//將匿名函數(shù)賦值給變量fn理张。
var fn=function(){
    return "我是一只小小小小留下,怎么飛也飛不高绵患!"
}
//調(diào)用方式與調(diào)用普通函數(shù)一樣
console.log(fn());//我是一只小小小小留下雾叭,怎么飛也飛不高!

  • 回調(diào)函數(shù)
setInterval(function(){
    console.log("我其實(shí)是一個(gè)回調(diào)函數(shù)落蝙,每次1秒鐘會被執(zhí)行一次");
},1000);
  • 返回值
//將匿名函數(shù)作為返回值
function fn(){
    //返回匿名函數(shù)
    return function(){
        return "張培躍";
    }
}
//調(diào)用匿名函數(shù)


console.log(fn()());//張培躍
//或
var box=fn();
console.log(box());//張培躍
模仿塊級作用域


塊級作用域织狐,有的地方稱為私有作用域暂幼。JavaScript中是沒有塊級作用域的,例如:
if(1==1){//條件成立移迫,執(zhí)行if代碼塊語句旺嬉。
    var a=12;//a為全局變量
}
console.log(a);//12
for(var i=0;i<3;i++){
    console.log(i);
}
console.log(i);//4
  • if(){}for(){}等沒有自己的作用域。如果有厨埋,出了自己的作用域邪媳,聲明的變量就會立即被銷毀了。但是咱們可以通過匿名函數(shù)來模擬塊級作用域:
(function(){
    //這里是我們的塊級作用域(私有作用域)
})();
  • 嘗試塊級作用域:
function fn(){
    (function(){


        var la="啦啦啦荡陷!";
    })();
    console.log(la);//報(bào)錯---la is not defined
}
fn();

匿名函數(shù)的作用
1雨效、通過匿名函數(shù)可以實(shí)現(xiàn)閉包,關(guān)于閉包在后面的文章中會重點(diǎn)講解废赞。在這里簡單介紹一下:閉包是可以訪問在函數(shù)作用域內(nèi)定義的變量的函數(shù)徽龟。若要創(chuàng)建一個(gè)閉包,往往都需要用到匿名函數(shù)唉地。

2据悔、模擬塊級作用域,減少全局變量耘沼。執(zhí)行完匿名函數(shù)极颓,存儲在內(nèi)存中相對應(yīng)的變量會被銷毀,從而節(jié)省內(nèi)存耕拷。再者讼昆,在大型多人開發(fā)的項(xiàng)目中,使用塊級作用域骚烧,會大大降低命名沖突的問題浸赫,從而避免產(chǎn)生災(zāi)難性的后果。自此開發(fā)者再也不必?fù)?dān)心搞亂全局作用域了赃绊。

參考文獻(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末既峡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子碧查,更是在濱河造成了極大的恐慌运敢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忠售,死亡現(xiàn)場離奇詭異传惠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)稻扬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門卦方,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泰佳,你說我怎么就攤上這事盼砍〕韭穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵浇坐,是天一觀的道長睬捶。 經(jīng)常有香客問我,道長近刘,這世上最難降的妖魔是什么擒贸? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮跌宛,結(jié)果婚禮上酗宋,老公的妹妹穿的比我還像新娘积仗。我一直安慰自己疆拘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布寂曹。 她就那樣靜靜地躺著哎迄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隆圆。 梳的紋絲不亂的頭發(fā)上漱挚,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音渺氧,去河邊找鬼旨涝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侣背,可吹牛的內(nèi)容都是我干的白华。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贩耐,長吁一口氣:“原來是場噩夢啊……” “哼弧腥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起潮太,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤管搪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铡买,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體更鲁,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年奇钞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澡为。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛇券,死狀恐怖缀壤,靈堂內(nèi)的尸體忽然破棺而出樊拓,到底是詐尸還是另有隱情,我是刑警寧澤塘慕,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布筋夏,位于F島的核電站,受9級特大地震影響图呢,放射性物質(zhì)發(fā)生泄漏条篷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一蛤织、第九天 我趴在偏房一處隱蔽的房頂上張望赴叹。 院中可真熱鬧,春花似錦指蚜、人聲如沸乞巧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绽媒。三九已至,卻和暖如春免猾,著一層夾襖步出監(jiān)牢的瞬間是辕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工猎提, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留获三,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓锨苏,卻偏偏與公主長得像东囚,于是被迫代替她去往敵國和親模蜡。 傳聞我的和親對象是個(gè)殘疾皇子揉抵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容