js的this指向
1. 普通函式的this
- 如果一個函式中有this,但是它沒有被上一級的物件所呼叫,那麼this指向的就是window
- 如果一個函式中有this,這個函式有被上一級的物件所呼叫,那麼this指向的就是上一級的物件
- 如果一個函式中有this,這個函式中包含多個物件,儘管這個函式是被最外層的物件所呼叫,this指向的也只是它上一級的物件
function a() {
var user = "zmf";
console.log(this.user) //undifine
console.log(this) //window
};
window.a();
var o = {
a:10,
b: {
a:12,
fn : function () {
console.log(this.user)
console.log(this)
}
}
}
//雖然函式fn是被物件b所引用,但是在將fn賦值給變數j的時候並沒有執行所以最終指向的是window
//this永遠指向的是最後呼叫它的物件,也就是看它執行的時候是誰呼叫的
var j = o.b.fn;
j();
2. 建構函式的this
//這裡之所以物件a可以點出函式Fn裡面的user是因為new關鍵字可以改變this的指向,將這個this指向物件a,
//為什麼我說a是物件,因為用了new關鍵字就是建立一個物件例項
function Fn(){
this.user = "zmf";
}
var a = new Fn();
console.log(a.user);
3. 有返回值的this
如果返回值是一個物件,那麼this指向的就是那個返回的物件,如果返回值不是一個物件那麼this還是指向函式的例項
相關文章
- JS this的指向JS
- js中的this指向JS
- JS中this指向的更改JS
- Js中this指向JS
- 面試官問:JS的this指向面試JS
- 【機制】js中的this指向JS
- js函式中的this指向JS函式
- js中this的指向問題JS
- js中修改this的指向方法整理JS
- 徹底理解 JS 中 this 的指向JS
- 徹底理解js中this的指向JS
- JS中 this 到底指向誰?JS
- 淺談 js 中的 this 指向問題JS
- 【JavaScript】聊聊js中關於this的指向JavaScriptJS
- JS 中的函式 this 指向總結JS函式
- JS 的 this 指來指去到底指向哪?(call, apply, bind 改變 this 指向)JSAPP
- 淺談js的this指向與解決思路JS
- [譯] 理解JS的函式呼叫和‘this’的指向JS函式
- JS學習筆記之this指向JS筆記
- JS 中 this 在各個場景下的指向JS
- 看懂js中this關鍵字的指向問題JS
- JS中的this指向問題(詳細版plus)JS
- 隨筆——js中的this指向,apply()與 call()JSAPP
- 【翻譯】理解JS的函式呼叫和‘this’的指向JS函式
- js中this指向有幾種情況JS
- js基礎:this你到底指向哪裡?JS
- js中this指向的問題與聯絡深入探究JS
- JavaScript的this的指向JavaScript
- JS中改變this的指向 call、apply 和 bind 的區別JSAPP
- JavaScript 中 This 的指向JavaScript
- JavaScript內的this指向JavaScript
- JavaScript 內的 this 指向JavaScript
- JavaScript中this指向以及改變this指向JavaScript
- 走心大白話JavaScript教程(一)理解JS中this指向的小技巧JavaScriptJS
- 關於-this指向的理解
- javascript的this指向問題JavaScript
- javascript:this指向JavaScript
- JS基礎總結(4)——this指向及call/apply/bindJSAPP