js中關於this的使用

在最近的學習課程中,接觸到了this這個代碼的使用方法。有幾點關於this的使用方法。接下來以個人理解做爲出發點,來分析一下this的使用。bash

遇到this,必定要記得這一句:函數執行時,this老是指向調用該函數的對象,即判斷this所在的函數屬於誰。函數

1、函數有所屬對象,則指向所屬對象學習

這裏的getValue屬於對象myObject,因此this就指向myObject,執行結果以下:ui

2、函數沒有所屬對象時,就指向全局對象windowthis

在這裏,foo屬於全局對象,因此foo函數打印的this.value爲undefined。執行結果以下:

3、setTimeout和setInterval方法也是屬於全局對象的,因此在這兩個函數體內this是指向全局的,因此也是這種狀況,以下:

執行結果以下:

4、箭頭函數中的this(這個this綁定的是定義時所在的做用域,而不是運行時所在的做用域,箭頭函數其實沒有本身的this,因此箭頭函數內部的this其實是外部的this)代碼以下:

var myObject={
    value:100
};
myObject.getValue=function(){
    setTimeout(()=>{
        console.log(this.value);
        console.log(this);
    },0);
    return this.value;
}
console.log(myObject.getValue());
複製代碼

以上就是我對於this的怎樣使用的理解。spa

相關文章
相關標籤/搜索