JavaScript匿名函數(shù)用法分析
本文實例講述了JavaScript匿名函數(shù)用法。分享給大家供大家參考。具體如下:
一、定義一個函數(shù)
在JavaScript中,可以通過“函數(shù)聲明”和“函數(shù)表達式”來定義一個函數(shù),比如
1、通過“函數(shù)聲明”來定義一個函數(shù)
function t1(){}
2、通過“函數(shù)表達式”來定義一個函數(shù)
t2 = function(){}
但是兩種方式定義函數(shù),效果是不同的
t1是函數(shù)聲明,‘詞法分析'時,AO.t1 = function(){},-------------在‘詞法分析'階段就發(fā)揮作用
t2是賦值操作,‘運行'時,AO.t2 = function(){},值是右邊的表達式返回的結(jié)果,------在‘運行'階段才發(fā)揮作用
二、匿名函數(shù)
在JavaScript中,小括號()里的語句當做表達式來執(zhí)行,在上面說到,可以使用“函數(shù)表達式”來定義一個函數(shù),那么,我們可以在()內(nèi)定義一個函數(shù),如
(function t3(){alert(' i am t3');})
如果該函數(shù)沒有使用名字,修改如下
(function(){alert(' i am t3');})
包含在()內(nèi)的語句既然是表達式,就有返回值,(function(){alert(' i am t3');})的返回值就是定義的函數(shù),可以立即調(diào)用,如
(function(){alert(' i am t3');})()
因此,在小括號()內(nèi)定義一個沒有名字的函數(shù),該函數(shù)稱為匿名函數(shù)。這種手法,匿名函數(shù),立即執(zhí)行,不污染全局,稱為 立即執(zhí)行函數(shù)表達式。
三、jquery就是一個匿名函數(shù)
jquery的代碼就是封裝在一個匿名函數(shù)中,這是jquery最外層的代碼:
(function(window,undefined){})(window);//立即調(diào)用
但是jquery為什么傳window,不傳undefined呢?
答:傳window是為了查找速度,減少查詢變量的時間。比如下面這段js代碼
function(){
function(){
function(){
function(){
document.getElementById();
//這個document將會沿作用域?qū)訉由险遥钡阶钔鈱觲indow全局。
}
}
}
}
jquery就是為了加快內(nèi)部查找局部變量的速度,而直接把window以參數(shù)形式傳進來, 這樣window就在jquery內(nèi)部AO上。
不傳undefined是為了安全,因為在低版本的IE,FF中,undefined竟然可以重新賦值,如 undefined=3;
聲明局部變量undefined(名字是undefined),同時,又不傳參,值自然就是undefined
希望本文所述對大家的javascript程序設(shè)計有所幫助。
相關(guān)文章
Javascript實現(xiàn)html轉(zhuǎn)pdf高清版(提高分辨率)
這篇文章主要介紹了Javascript將html轉(zhuǎn)成pdf高清版(提高分辨率),需要的朋友可以參考下2020-02-02
echarts柱狀堆疊圖實現(xiàn)示例(圖例和x軸都是動態(tài)的)
一些柱形圖在數(shù)據(jù)量比較多的時候,橫向排列受到擠壓,導致柱形圖,變的非常細,影響整體的效果,下面這篇文章主要給大家介紹了關(guān)于echarts柱狀堆疊圖(圖例和x軸都是動態(tài)的)的相關(guān)資料,需要的朋友可以參考下2023-04-04
Javascript獲取當前時間函數(shù)和時間操作小結(jié)
這篇文章主要介紹了Javascript獲取當前時間函數(shù)和時間操作小結(jié),本文根據(jù)項目實際需求總結(jié)而來,需要的朋友可以參考下2014-10-10
JavaScript動態(tài)檢測密碼強度原理及實現(xiàn)方法詳解
這篇文章主要介紹了JavaScript動態(tài)檢測密碼強度原理及實現(xiàn)方法,結(jié)合具體實例形式詳細分析了javascript針對輸入字符串密碼強度檢測的原理與相關(guān)判斷操作技巧,需要的朋友可以參考下2019-06-06

