js中的this指向問題

2022-04-09 05:53:24 字數 984 閱讀 9728

討論this的指向,就要從四個角度來分析看觸發this的方式去決定this指向**

1.方法呼叫

var obj = 

}obj.say(); //看這裡面的this指向,需要看呼叫他的物件 !!!!所以要看這行!!!

2.函式呼叫

function getname()

getname() //先寫乙個函式,然後呼叫這個函式,就是指向window

如果在嚴格模式下,會出現undefined

function getname()

getname() //函式內部為嚴格模式要求,就出現了undefined

3.new構造函式呼叫

function person(name)

var person = new person('殘夢')

var person1 = new person('')

console.log(person,person1) //person  person 

// 通過new呼叫的時候,this就會指向他的例項 什麼意思呢?

// var person = new person('殘夢')執行的時候,會呼叫person函式,並且把參傳遞過去,這個時候的this就會指向person

function person()

function obj()

//我們想讓obj的this指向person函式

person.call(obj) //這個單純的改變指向,沒有任何其他作用

obj() //殘夢

//上面我呼叫了obj這個函式,發現他的this指向了person函式

總之一句話,this的指向就看呼叫他的方式,大體上就是四種方式,但是具體可能還會發生變化,比如es6箭頭函式,嚴格模式等等

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...