mdn上定義:函式的呼叫方式決定了 this 的值(執行時繫結)。this 不能在執行期間被賦值,並且在每次函式被呼叫時 this 的值也可能會不同.
個人認為this是要結合上下文的時候判斷他的指向,在全域性執行環境中,this指向的是window.
在函式中,this指向看』.'前面的物件是誰就指向誰
`下面通過**來看this的指向`
// an highlighted block
var name =
"su"
var person =},
} person.
getmethod()
()//這裡會輸出全域性變數su,因為person.getmethod()返回的是乙個函式,函式在全域性環境中呼叫,this則指向的window,所以直接找到name = 'su'
var yourname =
"su"
var per =},
} per.
getname()
()//會輸出xuan,因為在getname中把他的this的指向用乙個變數儲存起來,所以呼叫內部函式this指向的是per,拿到他的變數
//這裡因為內部的匿名函式會引用到getname函式的變數_this,此處也會產生閉包
箭頭函式的this指向的是在定義箭頭函式時他所在的物件
也是通過**演示
var myname =
"su"
var people =},
} people.
sayhi()
()//xuan
//因為箭頭函式在建立時定義在了people裡面,所以他的this指向的是people,輸出自然為xuan
快速學習this指向
最近接觸react和react native裡面涉及到this指向的問題,如果沒弄清楚,很容易出錯,而之前用vue框架,this指向帶來的問題並不多,所以遺忘不少,現特定整理總結一下,複習和備份一下,同時和大家分享。普通函式 this指向呼叫函式的最近乙個上下文,通俗點理解就是呼叫函式所在的物件 在...
this指向問題(學習筆記)
總的來說 this指的就是呼叫函式的那個物件。1.匿名函式的執行環境具有全域性性,因此其 this 物件通常指向 window。var name the window var obj console.log obj.getname the window2.如果是一般函式,this指向全域性物件win...
JavaScript this指向 學習
函式預編譯過程 this window 全域性作用域裡 this window obj.func func 裡的this指向obj 誰呼叫 this就指向誰 var name 222 var a var fun a.say fun 在全域性執行 沒人呼叫 this指向 window a.say 在a...