關於JS中this的指向問題

2021-10-09 07:42:59 字數 756 閱讀 9411

例項在方法中,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是什麼?任何函式本質上都是通過某個物件來呼叫的,...