位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 函數(shù) 使用 this

提問人:劉團圓發(fā)布時間:2020-11-25

■知識點

    JavaScript在函數(shù)體內(nèi)定義了 this關鍵字,this是一個指針型變量,它動態(tài)引用當前的運行環(huán)境,具體說就是調用函數(shù)的對象。調用對象是可以訪問的JavaScript對象,而執(zhí)行上下文的變量對象是一個不可訪問的抽象概念。同時,在一個執(zhí)行上下文中會存在多個可調用函數(shù)的對象,但是一個執(zhí)行上下文只有一個變量對象。

■實例設計

【示例】下面的示例在全局上下文中聲明一個變量X,初始化值為1,然后在obj對象內(nèi)定義一個屬性X,初始化值為2。使用函數(shù)f檢測不同運行環(huán)境下x值的變化,以此檢測this指針的引用對象。

var x = 1;                 //聲明全局變量并初始化

var obj = {

    f: function () {         //定義方法 f

        console. log (this.x) ; //訪問當前運行環(huán)境中x屬性值

    },

    x: 2,                       //定義屬性X,賦值為2

};

//obj環(huán)境執(zhí)行

obj.f ()                        //2

var f1 = obj.f;

//window環(huán)境執(zhí)行

fl();                          //1

    在上面的代碼中,obj.f()表示在obj對象上調用f函數(shù),則調用對象為obj,此時this就指向obj,this.x就等于obj.x,即返回結果為2。當把obj.f賦值給變量fl,然后在全局上下文中調用fl函數(shù),則f函數(shù)體的運行環(huán)境在全局上下文中執(zhí)行,此時this就指向window,this.x就等于window.x,即返回結果為1。

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部