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