Function類型

1.函數(shù)實際上是對象。

2.每個函數(shù)都是Function類型的實例北滥,而且都與其他引用類型一樣具有屬性和方法井赌。

3.由于函數(shù)是對象,因此函數(shù)名實際上也是一個指向函數(shù)對象的指針舟铜,不會與某個函數(shù)綁定戈盈。

4.函數(shù)通常是使用函數(shù)聲明語法定義的:


函數(shù)聲明定義

與使用函數(shù)表達(dá)式定義函數(shù)的方式幾乎相差無幾。

函數(shù)表達(dá)式定義

5.由于函數(shù)名僅僅是指向函數(shù)的指針谆刨,因此函數(shù)名與包含對象指針的其他變量沒有什么不同塘娶。換句話說,一個函數(shù)可能有多個名字:

注意:使用不帶圓括號的函數(shù)名是訪問函數(shù)指針痊夭,而非調(diào)用函數(shù)刁岸。

6.沒有重載(深入理解)

7.函數(shù)聲明和函數(shù)表達(dá)式:

解析器會率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼前可用(可以訪問)她我;至于函數(shù)表達(dá)式虹曙,則必須等到解析器執(zhí)行到它所在的代碼行,才會真正被解釋執(zhí)行番舆。

可以被執(zhí)行


執(zhí)行錯誤

除了什么時候可以通過變量訪問函數(shù)這一點區(qū)別之外酝碳,函數(shù)聲明與函數(shù)表達(dá)式的語法其實是等價的。

8.因為ECMAScript中的函數(shù)名本身就是變量恨狈,所以函數(shù)也可以作為值來使用疏哗。也就是說,不僅可以像傳遞參數(shù)一樣把一個函數(shù)傳遞給另一個函數(shù)拴事,而且可以將一個函數(shù)作為另一個函數(shù)的結(jié)果返回沃斤。


可以從一個函數(shù)中返回另一個函數(shù)圣蝎,這也是極為有用的一種技術(shù) 刃宵。

9.函數(shù)內(nèi)部屬性:arguments和this

arguments:它是一個類數(shù)組對象衡瓶,包含著傳入函數(shù)中的所有參數(shù)。雖然arguments的主要用途是保存函數(shù)參數(shù)牲证,但這個對象還有一個名叫callee的屬性哮针,該屬性是一個指針,指向擁有這個arguments對象的函數(shù)坦袍。?

階乘函數(shù)(用到遞歸算法)

上面函數(shù)的問題:這個函數(shù)的執(zhí)行與函數(shù)factorial緊緊耦合在一起十厢。為了消除這種緊密耦合的現(xiàn)象,可以使用arguments.callee捂齐。

this:引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對象--或者也可以說是this值

this

caller:這個屬性中保存著調(diào)用當(dāng)前函數(shù)的函數(shù)的引用蛮放,如果是在全局作用域中調(diào)用當(dāng)前函數(shù),它的值為null奠宜。

兩種情況

注意:不能為函數(shù)的caller屬性賦值包颁。

10.函數(shù)的屬性和方法:length和prototype

length屬性:表示函數(shù)希望接收的命名參數(shù)的個數(shù)。

length屬性

prototype屬性:對于ECMAScript中的引用類型而言压真,prototype是保存它們所有實例方法的真正所在娩嚼。換句話說,諸如toString()和valueOf()等方法實際上都保存在prototype名下滴肿,只不過通過各自對象的實例訪問罷了岳悟。在ECMAScript5中,prototype屬性是不可枚舉的泼差,因此使用for-in無法發(fā)現(xiàn)贵少。

每個函數(shù)都包含兩個非繼承而來的方法:apply()和call()。這兩個方法的用途都是在特定的作用域中調(diào)用函數(shù)堆缘,實際上等于設(shè)置函數(shù)體內(nèi)this對象的值滔灶。

apply()方法接受兩個參數(shù):一個是在其中運行函數(shù)的作用域,另一個是參數(shù)數(shù)組套啤。其中宽气,第二個參數(shù) 可以是Array的實例,也可以是arguments對象潜沦。

apply()

call()方法與apply()方法的作用相同萄涯,它們的區(qū)別僅在于接受參數(shù)的方式不同。對于call()方法而言唆鸡,第一個參數(shù)是this值沒有變化涝影,變化的是其余參數(shù)都直接傳遞給函數(shù)。換句話說争占,在使用call()方法的時候燃逻,傳遞給函數(shù)的參數(shù)必須逐個列舉出來序目。

call()

它們真正強(qiáng)大的地方是能夠擴(kuò)充函數(shù)賴以運行的作用域

bind()方法:這個方法會創(chuàng)建一個函數(shù)的實例伯襟,其this值會被綁定到傳給bind()函數(shù)的值猿涨。

bind()

11.每個函數(shù)繼承的toLocaleString()和toString()方法始終都返回函數(shù)的代碼。另外一個繼承的valueOf()方法同樣也只返回函數(shù)代碼姆怪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叛赚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稽揭,更是在濱河造成了極大的恐慌俺附,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溪掀,死亡現(xiàn)場離奇詭異事镣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)揪胃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門璃哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人只嚣,你說我怎么就攤上這事沮稚。” “怎么了册舞?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵蕴掏,是天一觀的道長。 經(jīng)常有香客問我调鲸,道長盛杰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任藐石,我火速辦了婚禮即供,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘于微。我一直安慰自己逗嫡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布株依。 她就那樣靜靜地躺著驱证,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恋腕。 梳的紋絲不亂的頭發(fā)上抹锄,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼伙单。 笑死获高,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吻育。 我是一名探鬼主播念秧,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扫沼!你這毒婦竟也來了出爹?” 一聲冷哼從身側(cè)響起庄吼,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缎除,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后总寻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體器罐,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年渐行,在試婚紗的時候發(fā)現(xiàn)自己被綠了轰坊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡祟印,死狀恐怖肴沫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蕴忆,我是刑警寧澤颤芬,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站套鹅,受9級特大地震影響站蝠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卓鹿,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一菱魔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吟孙,春花似錦澜倦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至稚失,卻和暖如春栋艳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背句各。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工吸占, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留晴叨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓矾屯,卻偏偏與公主長得像兼蕊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子件蚕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

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

  • 一孙技、函數(shù)的定義 定義函數(shù)有三種方式:函數(shù)聲明、函數(shù)表達(dá)式排作、Function構(gòu)造函數(shù)(不推薦) 函數(shù)聲明比如: fu...
    小妍妍說閱讀 642評論 0 0
  • Function類型 函數(shù)實際上是對象牵啦,每個函數(shù)都是Function類型的實例,而且都與其他引用類型一樣具有屬性和...
    胖胖冰閱讀 947評論 0 8
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,128評論 0 21
  • 函數(shù)實際上是對象妄痪。函數(shù)名是指向函數(shù)的指針哈雏。使用不帶圓括號的函數(shù)名是訪問函數(shù)指針,而非調(diào)用函數(shù)衫生。 函數(shù)定義 函數(shù)聲明...
    Wonder233閱讀 387評論 0 0
  • 下雨了 原來春天的腳步已悄然步近 到處...
    梁默默閱讀 153評論 0 0