1. 程式人生 > 實用技巧 >【前端面試題】箭頭函式中this指向問題

【前端面試題】箭頭函式中this指向問題

一、技術部落格、視訊

技術部落格:ES6中箭頭函式VS普通函式的this指向

視訊:
1.箭頭函式和this的指向問題(coderwhy老師)
2.箭頭函式和this指向問題(尚矽谷老師)

二、例項

// 1.this是靜態的,this始終指向函式宣告時所在作用域下的this的值
  // 如函式是在全域性下定義的,則this指向window

  function getName() {
    console.log(this.name);
  }

  let getName2 = () => {
    console.log(this.name);
  }

  // 設定window物件的name屬性
  window.name = "我是全域性"
  const others = {
    name: "我是物件"
  }

  // 直接呼叫
  getName();//輸出“我是全域性”
  getName2();//輸出“我是全域性”

// call方法呼叫,call方法可以改變函式內部的值
  getName.call(others)//輸出“我是物件”
  getName2.call(others)//輸出“我是全域性”,
//箭頭函式的this是靜態的,無論怎麼改變值,this始終指向宣告函式時的this值,如函式是在全域性下定義的,則this指向window