JS 函數

函數有三種定義方式

  • 函數聲明
 function add1(){
    console.log("函數聲明");
 }
  • 函數表達式
 var add2()=function(){
    console.log("函數表達式");
 }
  • 函數實例化
var add3 = new Function("i",
  "console.log("函數實例化")
);
區別:
  1. 函數聲明定義特點:
    函數定義會被前置;
    重復定義函數時,最后一次定義有效。
  2. 函數實例化定義特點:
    不遵循作用域逐級向上回溯原則;
    定義的函數只能訪問本地作用域和全局作用域。

函數調用

  1. 函數調用模式
  -  this指向全局對象
  1. 方法調用模式
  -  this指向調用者
  1. 構造函數調用模式 new Function(...);
  -  this指向被構造的對象
  1. apple(call)調用模式
  -  this指向第一個參數

函數參數傳遞

屏幕快照 2016-08-15 下午2.49.33.png

原始類型參數的傳遞模式:按值傳遞


屏幕快照 2016-08-15 下午2.49.23.png

對象類型參數的傳遞模式:按共享傳遞

屏幕快照 2016-08-15 下午2.47.09.png

閉包

什么是閉包:函數內部定義的字函數引用到父函數的變量形成的變量。
功能:
1.保存函數執行狀態
2.封裝
3.性能優化

Function.prototype.bind

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在js中,函數本身屬于對象的一種,因此可以定義、賦值,作為對象的屬性或者成為其他函數的參數。函數名只是函數這個對象...
    bjhu電net閱讀 553評論 0 5
  • JavaScript 函數定義 JavaScript 使用關鍵字 function 定義函數。函數可以通過聲明定義...
    鹿守心畔光閱讀 462評論 0 1
  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關的對象共享這一特性,可以實現繼承,這種實現繼承的...
    magic_pill閱讀 1,081評論 0 3
  • 函數定義 函數聲明 函數表達式 函數實例化 不同函數定義方式的區別: 聲明提前:代碼執行前先對變量定義、函數聲明進...
    angelwgh閱讀 298評論 0 0
  • 在八十年代的農村,一首不知何處流傳而來的小調《摘石榴》,猶如初春的晚風,融化了冰,吹皺了水,悄然催生了一個個向世俗...
    木棉之秋閱讀 1,032評論 71 57