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