“還記得前幾天我們說的鼠標事件么?里面用到了兩個函數overme和outme,今天咱聊聊函數的一些基礎知識吧!”
“好啊!前兩天說這兩個函數的時候我心里就有很多不明白的地方,能系統的說一下就最好了!”
老朱說:“我覺得剛開始也不一定要把函數相關的知識都說了,咱還是挑一些重要的來說吧!”
老朱接著說:“在js里面函數也可以作為一個參數傳遞,也就是說我們可以定義一個變量,讓變量等于一個匿名函數。”
小白打斷了老朱說的話,問道:“朱哥,什么是匿名函數呢?”
“哦!一般我們定義函數的時候都是有函數名的,匿名函數就是沒有函數名的函數。你看下面就是一個匿名函數”
“這個函數跟之前的overme和outme函數區別在于沒有函數名,它的外部通過小括號括住,如果需要參數傳遞,后面可以跟一對小括號放參數,如現在這個匿名函數需要傳遞一個參數a,所以后面有一對小括號里面傳遞了參數15。匿名函數有一個非常大的好處就是,我們做的一個功能頁面如果可能會被別的頁面調用,為了避免變量名稱沖突,通常在這個頁面的js功能通過一個匿名函數來實現,匿名函數內部的變量使用var定義就不會與其他頁面同名變量沖突。匿名函數用處非常大,匿名函數以后如果用到我們專門來講,今天主要說普通的函數。現在我們讓一個變量tipf等于這個匿名函數。”
“這里的兩個函數表達的內容是一樣的,都可以傳遞一個參數a,然后在控制臺輸出myTip+a字符串。唯一的區別就是上面的tipf函數符合代碼順序執行,下面的tipf函數可以在頁面任意位置定義。另外在定義js對象的時候也可以用第一種方式通過prototype給對象設定方法,這個你有個印象就可以,現在不用詳細了解,否則對你學習JS的興趣會有打擊。”
“那你為啥還要說prototype,我已經開始迷糊了。”,小白郁悶的說道。
“哈哈,開個玩笑么,你有個印象總比以后碰到prototype犯迷糊強吧,好歹知道怎么回事。之前咱看到的函數都沒有返回值,還有一種函數是有返回值的,返回值使用return關鍵字。比如下面這個函數”
這個res函數有一個參數s,我們傳入字符串s以后,函數會返回一個包含span標簽的紅色文字。直觀理解就是,res等于返回值。于是我們如果希望一個div里面放一段紅色的文字就不用考慮樣式了,只需要直接傳遞文本就可以。
“在前期學習js和使用js的時候函數可以說無處不在,你需要大量使用函數尋找使用函數的感覺,這樣會為你之后使用js對象打下很好的基礎,今天就聊這么多吧,以后碰到函數問題我們再做詳細說明。”
想學H5的朋友可以關注老爐,您的關注是我持續更新《小白H5成長之路》的動力!