例項在方法中,this 指的是所有者物件。
單獨的情況下,this 指的是全域性物件。
在函式中,this 指的是全域性物件。
在函式中,嚴格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰
如果乙個函式中有this,它沒有被上一級的物件所呼叫,那麼此時this指向window
如果乙個函式中有this,這個函式有被上一級的物件所呼叫,那麼此時this指向的就是上一級的物件。
如果乙個函式中有this,父級存在幾層物件,儘管這個函式是被最外層的物件所呼叫,this指向的也只是它上一級的物件。
用小例子來展示
var num =1;
function
fun(
)var obj =)(
);console.
log(
this
.num)},
man:},
sub:
function()
}fun()
; obj.
add();
obj.man.fn(
);var sub = obj.sub;
sub(
)
看到題目可以先自己想一下輸出結果是什麼
分頁失敗的我emmmm,那麼開始分析吧(這裡不分析預編譯的過程)
關於js中的this指向問題
1.在普通函式和全域性環境下 this指向window function demo demo console.log this x 102.建構函式 建構函式就是函式new出來的物件,所以this指向該物件 function foo var foo newfoo console.log foo.x ...
關於js建構函式中this的指向問題
js裡沒有類.建構函式是個函式,this指向的是個物件,this蒙上眼睛指也指不到建構函式去.建構函式的this指向建立的例項物件無疑.要明白這一點,要先弄明白,用new操作符呼叫建構函式的時候都發生了什麼.正好我有個答案是講建構函式的,我這裡原樣搬來 造函式其實和普通函式本質上並無區別,唯一的區別...
JS中this指向問題
解析器在呼叫函式時,每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱之為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件.簡單來說一下函式中this指向問題,1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,...