this的指向問題

2021-09-29 01:12:47 字數 767 閱讀 2099

function foo() 

var a = 1

foo()

const obj =

obj.foo()

const c = new foo()

function a() 

}}console.log(a()()())

箭頭函式是沒有this的,箭頭函式中的this只取決包裹箭頭函式的第乙個普通函式的this。在這個例子中,因為包裹箭頭函式的第乙個普通函式是a,所以此時的thiswindow。另外對箭頭函式使用bind這類函式是無效的。

var xw = 

};var xh = ;

xw.say(); // 小王 , 男 ,今年24

xw.say.call(xh); // 小紅 , 女 ,今年18

xw.say.bind(xh)(); // 小紅 , 女 ,今年18

可以看出,三種方法都能改變this的指向,用xw的say方法來顯示xh的資料,但是有什麼區別呢?

call可以傳入多個引數;

當多個規則同時出現的時候,就會根據優先順序的來決定 this 的最終指向。

this的指向問題

對於js基礎不是很好的我,一直不太懂this的指向問題。要搞懂這個還是得多動手。首先,我們知道 1.函式被呼叫時可以確定該函式內this的指向。因為函式中的this和arguments時兩個特殊的變數,在函式被呼叫時才會取得他們,而搜尋著兩個變數時只會在活動變數中找。2.確定函式被呼叫的位置,從而確...

this的指向問題

宣告 本文 追夢子 大大的文章 徹底理解js中this的指向,不必硬背。偶遇此文自我總結一下,受益良多 例1 function a a 注意函式是在什麼作用域中呼叫的 這個函式實在全域性作用域中呼叫所以this指向的是window 全域性中沒有user所以是undefineds 例2 var o o...

this的指向問題

this 的指向問題 第一種 指向呼叫者 function a a 每乙個函式前面都會隱式的呼叫window,所以相當於window.a var a a.fn a呼叫了fn 所以this指向的是a 在舉個特殊的例子作對比 var a var j a.fn j 在這裡this永遠指向他的呼叫者,但這裡...