js中this指向問題

2021-10-08 09:48:00 字數 652 閱讀 9913

一:發現很多人面試的是都都會被問到函式中this指向的問題,今天咱們就來好好捋一捋這個問題,函式中this指向,以及es6箭頭函式this指向的問題;

咱們先來看下面乙個例子

window.color = 'red'

var a =

function fun()

fun() // 'red'

a.fun = fun;

a.fun() // 'blue'

普通函式來說呢,this的指向就是該函式執行的環境物件,說白了就是誰呼叫它this就指向誰

上面的例子,定義乙個列印出color的函式,分別兩個物件呼叫它,乙個是windos全域性物件,另乙個是定義的變數為a的物件,分別呼叫,列印出不同的內容。

說過了普通函式this指向,就來看一看es6當中箭頭函式的指向

function foo() , 100);

}var id = 21;

foo.call();

// id: 42

箭頭函式導致this總是指向函式定義生效時所在的物件

JS中this指向問題

解析器在呼叫函式時,每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱之為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件.簡單來說一下函式中this指向問題,1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,...

JS中this指向問題

函式內部的this之和函式的呼叫方式有關,和函式的定義方式沒有關係functionfn fn windowvar obj obj.fn obj functionfn 或者可以這樣寫自呼叫函式 functionfn div document.queryselector div div.onclick ...

JS中this指向問題

與其它語言相比,js的this關鍵字的指向稍微有點差別。一 全域性環境 首選我們要明確一點,在全域性環境中 在任意函式體外部 無論是嚴格模式還是非嚴格模式,this都指向window。下面,我們來通過幾個例子理解一下。示例1 console.log this 這裡的this在全域性域下,指向wind...