MoonCheung

MoonCheung

人生路漫漫,何曾有坦途。:)

箭头函数和普通函数的区别

  1. 關於箭頭參數:
    1. 如果箭頭函數沒有參數,直接寫一個空括號即可;
    2. 如果箭頭函數的參數只有一個,需要用括號包裹參數;
    3. 如果箭頭函數的參數有多個,將參數依次用逗號 (,) 分隔,包裹在括號中即可;
  2. 關於箭頭函數體:
    1. 箭頭函數沒有普通函數function關鍵字;
    2. 如果箭頭函數的函數體只有一句代碼,就是簡單返回某個變量或者返回一個簡單的 JS 表達式,可省去函數體花括號{};
    3. 如果箭頭函數的函數體只有一句代碼返回一個對象的話,需用圓括號來包裹對象;
    4. 如果箭頭函數的函數體只有一條語句並且不需要返回值(最常見是調用一個函數),可在這條語句前面加一個 void 關鍵字;
  3. 區別在於:
    1. 箭頭函數本質:
      1. 語法更加簡潔,清晰;
      2. 箭頭函數就是匿名函數;
      3. 箭頭函數不會創建自己的 this,會從自己作用域鏈外層繼承 this;因為箭頭函數中 this 的指向在被定義時已確定,永遠改變不了的;
    2. 普通函數本質:
      1. new 的本質生成新對象,將該對象的_proto_(原型鏈) 指向函數的 prototype (原型),再執行 call 方法,最後將新對象賦值給已聲明變量;
      2. 在其作用域鏈中創建 this 執行上下文,且優先級 new > bind > obj > window;
      3. 可聲明幾個函數,比如函數表達式,函數聲明,匿名函數。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。