JS中this的指向問題(全)

2021-08-20 11:39:20 字數 1199 閱讀 6083

this關鍵字在js中的指向問題不管是工作還是面試中都會經常遇到,所以在此對它進行一下總結。

this在全域性作用域中指window。
//全域性作用域中

console.log(this)//window

a =1;

console.log(this.a) //相當於window.a 1

//普通函式中

function fn()

fn()//window

function

fn()

return fn2

}fn()() //window

這裡obj.fn()是obj去呼叫fn,而obj.name=」b」,所以this.name=」b」;

而var fn=obj.fn的時候,fn是window.fn,因此fn()的結果是」a」.

注意:this指向的是上一級呼叫它的物件,比如obj.fn()與window.obj.fn()都是輸出b.

var name="a"

var obj =

}obj.fn() //b

var fn=obj.fn

fn() //a

function

person

(name,age)

person.prototype.sayhi=function

() var p1=new person('張三',20)

p1.sayhi() //i am 張三,i am 20 years old.

參考部落格:

var name = 'window';

var obj = , 1000)

}}

var name = 'window';

var obj = .bind(this), 1000)

}}//而bind則是返回乙個新的函式,它會建立乙個與原來函式主體相同的新函式,新函式中的this指向傳入的物件。

function foo() , 100);

} var

id = 21;

foo.call

(); // id: 42

JS中this指向問題

解析器在呼叫函式時,每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱之為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件.簡單來說一下函式中this指向問題,1.this是什麼?任何函式本質上都是通過某個物件來呼叫的,...

JS中this指向問題

函式內部的this之和函式的呼叫方式有關,和函式的定義方式沒有關係functionfn fn windowvar obj obj.fn obj functionfn 或者可以這樣寫自呼叫函式 functionfn div document.queryselector div div.onclick ...

JS中this指向問題

與其它語言相比,js的this關鍵字的指向稍微有點差別。一 全域性環境 首選我們要明確一點,在全域性環境中 在任意函式體外部 無論是嚴格模式還是非嚴格模式,this都指向window。下面,我們來通過幾個例子理解一下。示例1 console.log this 這裡的this在全域性域下,指向wind...