this這個 keyword非常的困惑,但是其實有乙個好方法可以理解.
1. 檢查 ' . ' 左邊是誰invoke 這個函式. 例如 xiaoming.age(); age函式裡面有this, 然後 '. ' 旁邊是xiaoming , 那麼this就是指向xiaoming了.這種叫做 implicit binding.
3. 如果上面兩個都沒有就檢查**裡面有沒有用到new 這個keyword, 有的話那就是指向new旁邊的函式物件. 這種叫做new binding
4. 上面三個都沒有, 檢查是不是有arrow function, 有arrow function的話就是, 那麼指向是arrow function的lexical binding 的物件. 就是她的parent. 這種叫做 lexical binding
5. 全部都沒有如果不是strict mode那就是window物件了.. strict就是 error (undefined).
this的指向問題
對於js基礎不是很好的我,一直不太懂this的指向問題。要搞懂這個還是得多動手。首先,我們知道 1.函式被呼叫時可以確定該函式內this的指向。因為函式中的this和arguments時兩個特殊的變數,在函式被呼叫時才會取得他們,而搜尋著兩個變數時只會在活動變數中找。2.確定函式被呼叫的位置,從而確...
this的指向問題
function foo var a 1 foo const obj obj.foo const c new foo function a console.log a 箭頭函式是沒有this的,箭頭函式中的this只取決包裹箭頭函式的第乙個普通函式的this。在這個例子中,因為包裹箭頭函式的第乙個普...
this的指向問題
宣告 本文 追夢子 大大的文章 徹底理解js中this的指向,不必硬背。偶遇此文自我總結一下,受益良多 例1 function a a 注意函式是在什麼作用域中呼叫的 這個函式實在全域性作用域中呼叫所以this指向的是window 全域性中沒有user所以是undefineds 例2 var o o...