js中的this指向

2022-03-13 20:45:38 字數 1515 閱讀 5085

解析器在呼叫函式的時候,每次都會向函式內部傳遞乙個隱含引數,這個引數就是this,this指向的是乙個物件,這個物件我們稱為函式執行的上下文物件,根據函式呼叫方式的不同,this的指向不同

1.以函式形式呼叫,this永遠指向的是window,屬於預設繫結

2.以方法形式呼叫,this指向的是呼叫方法的那個物件,屬於隱式繫結

4.new繫結,this指向例項物件

5.箭頭函式的this,指向外層作用域

如下圖:

一:

function

a()

a();

二:

function

fn ()

var b = new

fn; console.log(b.name)

//齊天大聖

三:方法呼叫

var c =

}//c呼叫

c.fn() //

四:多層呼叫,指向的是最終呼叫者

var c =}}

//最終呼叫者是b

c.b.fn()

五:賦值

var c =}}

//將fn賦值給了d,最終呼叫者是d

var d =c.b.fn

d();

六:當this遇上 return

function

fn() ;

}var e = new

fn; console.log(e.user);

//undefined

console.log(e) //

{}

function

fn()

var f = new

fn; console.log(f.user);

//undefined

console.log(f) //

fn 

function

fn() ;

}var g = new

fn; console.log(g.user);

//undefined

console.log(g) //

ƒ () {}

總結:如果返回值是乙個物件,那麼this指向的就是那個返回的物件,如果返回值不是乙個物件那麼this還是指向函式的例項。還有一點就是雖然null也是物件,但是在這裡this還是指向那個函式的例項,因為null比較特殊。

js中this的指向

lang en charset utf 8 深入理解thistitle head 它代表函式執行時,自動生成的乙個內部物件,只能在函式內部使用。隨著函式使用場合的不同,this的值會發生變化。但是有乙個總的原則,那就是this指的是,呼叫函式的那個物件。demo1 function demo1 呼叫...

js中this的指向

this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 functiona a 按照我們上面說的this最終指向的是呼叫它的物件,這裡的函式a實際是被window物件所點出來的,下面的 就可以證明。var o o.fn ...

js中的this指向

首先必須要說的是,this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話有些問題,後面會解釋為什麼會有問題,雖然網上大部分的文章都是這樣說的,雖然在很多情況下那樣去理解不會出什麼問題,但是實際上那樣理解是不準確的...