先來看看普通的函式是怎麼定義的
通過物件字面量定義函式
再來看看es6中箭頭函式的定義
現在知道了箭頭函式和普通函式的差別,接下來分析其引數和返回值與普通函式的差異。
引數問題
傳入乙個引數的寫法:
返回值問題
函式體中只有1行**時
現在再來看看在標籤中箭頭函式與普通函式this的返回值
看看在物件中箭頭函式與普通函式this的返回值
因此我們得出結論:
話不多說,上**
const obj1=
)settimeout((
)=>)}
)settimeout((
)=>
)settimeout((
)=>)}
) console.
log(
this);
//obj1物件
}}
話不多說,上答案
const obj1=
)settimeout((
)=>)}
)settimeout((
)=>
)settimeout((
)=>)}
) console.
log(
this);
//obj物件
}}
至此,關於es6中this的基礎問題已經基本解決了。
ES6中箭頭函式的作用
那為什麼在es6中引入了箭頭函式呢?最主要的目的就是解決this指標的問題。我們知道在es6中,我們可以建立乙個class,如果我們預設在其裡面加入乙個函式的話,其必須在呼叫的時候,必須繫結this指標,否則不能訪問當前類的例項裡面的屬性。下面舉乙個具體的例子,為什麼其能解決this指標的問題。比如...
ES6中箭頭函式中的this指向
箭頭函式的this指向與一般的function函式定義不同 箭頭函式的this定義 是在定義函式的時候繫結,而不是在執行的時候繫結 何為執行時繫結 來看下面的例子 let a 1 let obj obj.sayhi 輸出的是2一般的定義函式執行的時候決定this的執行,我們不難看出obj.say 的...
ES6中箭頭函式this指向的問題
箭頭函式在es6中用的很常見,剛開始我還覺得這有什麼,就是簡寫了一下而已 後來用習慣之後就覺得是真滴方便 在說之前先簡單的概括一下。箭頭函式和普通函式的區別如下。普通函式 根據呼叫我的人 誰呼叫我,我的this就指向誰 箭頭函式 根據所在的環境 我再哪個環境中,this就指向誰 先來看乙個簡單的例子...