從簡單的字面理解就是乙個沒有名字的函式,但是如果說它只是這樣簡單,那我也就沒有必要來說這些。
對匿名函式的理解1:
function()
// 報錯
不能直接使用。
對匿名函式的理解2:
var a = function()
a(); //1
匿名函式可以依附於乙個變數,並且這個變數名就是這個匿名函式的名字。
var a = function()
console.log(typeof a); //function
對匿名函式的理解3:
window.onload = function()
// 匿名函式
當匿名函式用在繫結事件中的時候,當這個事件執行的時候這個匿名函式也會被執行。
對匿名函式的理解4:
(function())()
// 追夢人
如果將匿名函式放入到表示式中並且後面加上小括號會自動執行這個函式
對匿名函式的理解5:
var a = function()();
// 自執行函式
匿名函式後面加括號會執行這個函式。
對匿名函式的理解6:
function()();
// 報錯
匿名函式必須依附乙個變數。
對匿名函式的理解7:
var a =
} a.fn(); //1
匿名函式不只是可以依附於乙個變數,也可以依附於乙個物件的屬性。
對匿名函式的理解8:
var a = ()
} //追夢人
同樣的匿名函式當做乙個物件的屬性時也可以自呼叫。
對匿名函式的理解9:
var a = function(b)
a(52); //52
匿名函式也可以傳遞引數
對匿名函式的理解10:
(function(a))(10) //10
對於表示式函式同樣也可以傳遞引數
對匿名函式的理解11:
var a = function(b)(10); //10
console.log(a); //undefined
如果將乙個自執行的匿名函式並且沒有返回值,賦值給乙個變數那麼這個變數的值就是undefined。因為這個函式在賦值之前已經執行完了,而這個函式沒有返回值,所以就是undefined,如果有返回值,那麼這個變數的值就是那個匿名函式的返回值。
var a = function(b)(10);
console.log(a); //10
這裡對匿名函式的講解就到此結束,下面說一下關於自執行的匿名函式問題。
why?為什麼下面這段**會報錯?
function()
// 報錯
1、因為ecamscript規定函式的宣告必須要有名字,如果沒有名字的話,我們就沒有辦法找到它了,對於為什麼自執行函式為什麼就可以不帶名字後面會講。
2、如果沒有名字必須要有乙個依附體,如:將這個匿名函式賦值給乙個變數。
如果按照上面的說法js報錯也是應該的,那麼我們用的下面這種**為什麼就能夠正常執行?
(function())() //1
之所以可以是因為我們將這個函式包含在了乙個小括號中,why?小括號為什麼這麼神奇?
按照ecamscript的規定,函式宣告是必須要有名字的,但是我們用括號擴起來那麼這個函式就不再是乙個函式宣告了,而是乙個函式表示式,你可以理解成下面這段**。
var a = function()(); //1
將乙個匿名函式賦值給乙個變數或者物件屬性就是函式表示式,函式表示式是可以不需要名字的,所以我們就可以直接通過這種方式來自動的執行這個函式。
再說一句
(function())()
第乙個括號是個運算子,它會返回這個匿名函式,然後最後乙個小括號會執行這個函式。
總結也就是說只要是表示式就可以直接執行它,並且不需要函式名,那麼我們還可以這樣呼叫它。
複製**
-function()()
+function()()
~function()()
!function()()
&function()()
|function()()
/function()()
/function()()
%function()()
typeof function()()
null==function()()
0==function()()
0!=function()()
0>function()()
0
對匿名函式的深入理解(徹底版)
從簡單的字面理解就是乙個沒有名字的函式,但是如果說它只是這樣簡單,那我也就沒有必要來說這些。對匿名函式的理解1 function 報錯 不能直接使用。對匿名函式的理解2 var a function a 1 匿名函式可以依附於乙個變數,並且這個變數名就是這個匿名函式的名字。var a functio...
對匿名函式的深入理解(徹底版)
從簡單的字面理解就是乙個沒有名字的函式,但是如果說它只是這樣簡單,那我也就沒有必要來說這些。對匿名函式的理解1 function 報錯 不能直接使用。對匿名函式的理解2 var a function a 1 匿名函式可以依附於乙個變數,並且這個變數名就是這個匿名函式的名字。var a functio...
深入理解函式
第五章 深入理解函式 1.return語句 有返回值的函式中,return語句的作用式提供整個函式的返回值,並結束當前函式返回到呼叫它的地方。在沒有返回值的函式中也可以使用return語句,例如當前檢查到乙個錯誤時提前結束當前函式的執行並返回 這個函式首先檢查引數x是否大於0,如果x不大於0就列印錯...