
“還記得前幾天我們說的鼠標事件么?里面用到了兩個函數(shù)overme和outme,今天咱聊聊函數(shù)的一些基礎(chǔ)知識吧!”

“好?。∏皟商煺f這兩個函數(shù)的時候我心里就有很多不明白的地方,能系統(tǒng)的說一下就最好了!”
老朱說:“我覺得剛開始也不一定要把函數(shù)相關(guān)的知識都說了,咱還是挑一些重要的來說吧!”
老朱接著說:“在js里面函數(shù)也可以作為一個參數(shù)傳遞,也就是說我們可以定義一個變量,讓變量等于一個匿名函數(shù)?!?/p>
小白打斷了老朱說的話,問道:“朱哥,什么是匿名函數(shù)呢?”
“哦!一般我們定義函數(shù)的時候都是有函數(shù)名的,匿名函數(shù)就是沒有函數(shù)名的函數(shù)。你看下面就是一個匿名函數(shù)”

“這個函數(shù)跟之前的overme和outme函數(shù)區(qū)別在于沒有函數(shù)名,它的外部通過小括號括住,如果需要參數(shù)傳遞,后面可以跟一對小括號放參數(shù),如現(xiàn)在這個匿名函數(shù)需要傳遞一個參數(shù)a,所以后面有一對小括號里面?zhèn)鬟f了參數(shù)15。匿名函數(shù)有一個非常大的好處就是,我們做的一個功能頁面如果可能會被別的頁面調(diào)用,為了避免變量名稱沖突,通常在這個頁面的js功能通過一個匿名函數(shù)來實現(xiàn),匿名函數(shù)內(nèi)部的變量使用var定義就不會與其他頁面同名變量沖突。匿名函數(shù)用處非常大,匿名函數(shù)以后如果用到我們專門來講,今天主要說普通的函數(shù)?,F(xiàn)在我們讓一個變量tipf等于這個匿名函數(shù)?!?/p>

“這里的兩個函數(shù)表達的內(nèi)容是一樣的,都可以傳遞一個參數(shù)a,然后在控制臺輸出myTip+a字符串。唯一的區(qū)別就是上面的tipf函數(shù)符合代碼順序執(zhí)行,下面的tipf函數(shù)可以在頁面任意位置定義。另外在定義js對象的時候也可以用第一種方式通過prototype給對象設(shè)定方法,這個你有個印象就可以,現(xiàn)在不用詳細了解,否則對你學(xué)習(xí)JS的興趣會有打擊?!?/p>
“那你為啥還要說prototype,我已經(jīng)開始迷糊了?!?,小白郁悶的說道。
“哈哈,開個玩笑么,你有個印象總比以后碰到prototype犯迷糊強吧,好歹知道怎么回事。之前咱看到的函數(shù)都沒有返回值,還有一種函數(shù)是有返回值的,返回值使用return關(guān)鍵字。比如下面這個函數(shù)”

這個res函數(shù)有一個參數(shù)s,我們傳入字符串s以后,函數(shù)會返回一個包含span標簽的紅色文字。直觀理解就是,res等于返回值。于是我們?nèi)绻M粋€div里面放一段紅色的文字就不用考慮樣式了,只需要直接傳遞文本就可以。


“在前期學(xué)習(xí)js和使用js的時候函數(shù)可以說無處不在,你需要大量使用函數(shù)尋找使用函數(shù)的感覺,這樣會為你之后使用js對象打下很好的基礎(chǔ),今天就聊這么多吧,以后碰到函數(shù)問題我們再做詳細說明?!?/p>
想學(xué)H5的朋友可以關(guān)注老爐,您的關(guān)注是我持續(xù)更新《小白H5成長之路》的動力!