vue中箭頭函數的使用

一.箭頭函數和普通函數的區別

1.普通函數中的this:

代表它的直接調用者(js的this是執行上下文), 例如 obj.cal() ,那麼cal()方法中的this就是obj

若沒找到直接調用者,則this指的是 window (常見的window的屬性和方法有: alert, location,document,parseInt,setTimeout,setInterval等)或者 undefined

上圖  普通函數  代碼解析:
getFullName( )方法的直接調用者是Person對象,所以”1 -- >”位置輸出如圖;
 fn( )方法沒有直接調用者對吧,所以“2-->位置”輸出了一個 window對象
fn( )中this.firstName,this.lastName爲 NaN

2.箭頭函數中的this

箭頭函數沒有自己的this, 它的this是繼承而來; 默認指向在定義它時所處的

對象(宿主對象)

您就記住這句話:箭頭函數中的this指向外層調用者

上圖 箭頭函數 代碼解析:
getFullName( )方法的直接調用者是Person對象,所以”1 -- >”位置輸出如圖;
 fn( )這個箭頭函數方法的外層調用者還是Peoson對象,所以“2-->位置”的是外層調用者Person對象的信息
返回的是return fn()函數 返回“3-->”中的 ‘hello’+’world’  即helloworld

所以:

1.普通函數中的this指向 它的直接調用者
箭頭函數中的this指向 它的外層調用者

2.什麼時候使用箭頭函數函數?

當把一個函數的結果(返回值)作爲另一個函數的參數的時候

您發現了麼 鉤子函數作爲方法的參數比如上圖中的 fn( )方法的參數就是 “3-->”中的 this.firstname+this.lastname 即’helloworld’


-----------------------------------分割線------------------------------

二.箭頭函數基礎語法詳情

1.聲明:普通函數                                                 |                            鉤子函數

                           

2.當函數參數只有一個,括號可以省略;但是沒有參數時,括號不可以省略。

3.箭頭函數相當於匿名函數,並且簡化了函數定義。箭頭函數有兩種格式,一種只包含一個表達式,省略掉了{ ... }和return。還有一種可以包含多條語句,這時候就不能省略{ ... }和return

4.如果返回一個對象,需要特別注意,如果是單表達式要返回自定義對象,不寫括號會報錯,因爲和函數體的{ ... }有語法衝突。注意,用小括號包含大括號則是對象的定義,而非函數主體

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章