ES6深刻淺出-2 新版函數:箭頭函數 2 視頻-1.視頻 箭頭函數


ES3裏面的寫法



匿名函數是用不了的 仍是須要給他賦值

選中的這一部分叫作匿名函數

等於號叫作賦值

let xxx叫作聲明

因此說這個地方是三個語法,首先聲明一個匿名函數,而後聲明一個xxx變量,最後把這個匿名函數賦值給這個變量xxx
python

es6箭頭函數

箭頭函數只能作賦值,不能作聲明
這是一個標準的箭頭函數
es6

寫法2,只有一個參數

若是隻有一個函數,能夠不用寫括號

調用一下作測試
函數

寫法3,函數體只有一句話的狀況

若是函數體只有一句話,那麼是能夠不寫花括號的。
假設咱們的函數體只有return p1+p2這一句話

那麼花括號是能夠省略掉的。p1+p2就會默認return 過去。
測試

只有一個參數,且只函數體也只有一句話



爲何會有箭頭函數

函數裏面有this是最難的

箭頭函數裏面沒有this

什麼是this?this是call的第一個參數


之因此會出現箭頭函數,就是由於this太難用了。
this

ES3裏面怎麼用的this


在講this以前,先講參數

看下面的代碼,聲明函數,f,調用函數f,傳入abc,那麼p1的值就是abc




其實p1就是argument的第一個值
p1就是argument的第二個值

在執行f這個函數以前會構建argument這個對象,裏面是f函數的兩個參數,
3d

進入this

不用p1也不用p2,直接打印出this。請問這個this是哪裏來的呢?


爲了更好的說明,把這個函數放在一個對象上


假設有p1和p2兩個值
對象

理解python裏面的slef

搜索python class 看一下 python的class是怎麼用的





傳的值1就是p1.那麼self是哪裏來的呢??
blog

回到js

函數hi第一個參數實際上也是一個this對象,1對應的是p1,2對應的是p2

this是什麼呢?this實際上就是.hi前面的東西 ,這裏this就是object


實際上第一個參數this對象是隱藏的。

一樣的這裏的this也是看不見的

總結





this永遠是call的第一個參數
class

this的誤用










箭頭函數就是爲了解決坑人的this



這種寫法是沒什麼問題的,是被js坑的沒辦法纔會這麼去寫
匿名函數

箭頭函數的寫法

那麼用箭頭函數能夠解決,箭頭函數只有參數,沒有this這個對象

爲了證實箭頭函數沒有this的概念


最外頭的this就是window這個對象



箭頭函數內沒有this對象,因此打印出來的就是 最外頭的window對象

不用this把本身的name打印出來。


 

結束

相關文章
相關標籤/搜索