函數(shù)定義
區(qū)別
用函數(shù)聲明方式定義一個(gè)函數(shù)時(shí)
1.函數(shù)會(huì)被前置
2.只有最后一次定義是有效的
用函數(shù)實(shí)例化方式定義函數(shù)時(shí)
定義的函數(shù)只能訪問本地作用域和全局作用域
函數(shù)調(diào)用
函數(shù)調(diào)用模式
this指向全局變量
方法調(diào)用模式
this指向調(diào)用者
構(gòu)造函數(shù)調(diào)用模式
this指向被構(gòu)造的對(duì)象
apply(call)調(diào)用模式
this指向第一個(gè)參數(shù)
Array-like
arguments[index] 獲取函數(shù)實(shí)參
arguments.length 獲取函數(shù)實(shí)參個(gè)數(shù)
函數(shù)傳參
按值傳遞
基本類型外部變量傳入函數(shù)中的只是副本糙捺,函數(shù)中進(jìn)行的操作不會(huì)影響外部變量。
按共享傳遞
閉包
當(dāng)function里嵌套function時(shí)梅鹦,內(nèi)部的function可以訪問外部function里的變量
功能
保存函數(shù)執(zhí)行狀態(tài)
封裝
性能優(yōu)化
first-class function
JS上的函數(shù)可以當(dāng)做普通變量使用
功能
函數(shù)作為參數(shù)
函數(shù)作為返回值