前端中的this,指的是什麼?

千鋒武漢發表於2021-09-06

  想要學習前端,短時間內是比較困難的,web前端要學習的內容有很多,今天小編就為大家詳細的介紹一下前端中的this,指的是什麼?來看看下面的詳細介紹。

  前端中的this,指的是什麼?

  1.this是什麼

  this 是 JavaScript 中的一個關鍵字。依賴於函式呼叫的上下文條件,與函式被呼叫的方式有關。它指向誰,完全是由函式被呼叫的呼叫點來決定的。

  所以,this,是在執行時繫結的,與編寫時的繫結無關。隨著函式使用場合的不同,this 的值也會發生變化。但是有一個總的原則:那就是this 總會指向呼叫函式的那個物件。

  ES6中箭頭函式的不繫結this。在判斷this的指向時,將其看作普通的方法即可。普通的方法中的this指的是包含它的函式的this。這樣一來this的指向就清楚了。

  2.call/apply

  this的指向可以透過呼叫物件的改變而改變,也可以透過call/apply來改變。

  呼叫方法為Function.call(obj,...args)/Function.apply(obj,args)。它是說用obj這個上下文去呼叫Function。他們的區別在於args的型別。

  3.原生實現call和apply

  最簡單的call是如何呼叫的 func.call(obj)(obj可能為null)。

  分析該程式碼:某個函式要呼叫這個方法call,證明原生實現的方法mycall應該是函式原型上的一個方法。

  因此原生call的實現方法如下:

01

  myApply的實現和myCall的實現類似,只是傳輸引數的方式不同而已。

02

  4.bind是什麼

  呼叫方法為func.bind(obj,[...args]),它會返回一個函式,這個函式是將obj繫結到func的this上之後返回的函式。

  bind的呼叫方式為: func.bind(obj),因此同樣還是要在函式的原型上面寫。

  原生實現bind的方法為:

03

  5.結束語

  this 總是指代了函式當前的執行環境,依賴於函式在呼叫時的上下文,只有在函式執行時才會進行繫結。想要判斷this的指向,只需要記住:this 總會指向,呼叫函式的那個物件。

  以上關於“前端中的this,指的是什麼?”的內容希望能夠幫助到正在學習web前端技術的同學。想要了解更多 web前端的具體內容就關注小千,後期繼續為大家分享更多前端知識。

  本文來自千鋒教育,轉載請註明出處。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2790499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章