關(guān)于this

網(wǎng)上有很多介紹this,下面2個(gè)例子是引用阮一峰的

 function test(){
        this.x = 1;
        alert(this.x);
  }
  test(); // 1

這是函數(shù)的最通常用法,屬于全局性調(diào)用,因此this就代表全局對(duì)象Global。

 function test(){
    alert(this.x);  
  }
  var o = {};
  o.x = 1;
  o.m = test;
  o.m(); // 1

函數(shù)還可以作為某個(gè)對(duì)象的方法調(diào)用,這時(shí)this就指這個(gè)上級(jí)對(duì)象。

自己想法

var foo = function(){console.log(this)}
var obj = {
   method : function(){foo()},
   method2: function(){console.log(this)},
   method3: function(){function func(){foo();}func()},
   method4: function(){var _self = this;function func(){_self.method2()}  func()}
}

分別輸出1. window 2.obj 3window 4.obj
1和2的區(qū)別是什么?1是在對(duì)象的method方法的環(huán)境下中的一個(gè)func中執(zhí)行代碼,而2是在method方法的直接環(huán)境下執(zhí)行代碼,
所以我的觀點(diǎn)是,在對(duì)象方法的直接環(huán)境下執(zhí)行代碼會(huì)指向obj本身,在其他則指向window

  var obj = {
   method2: function(){
                       console.log(this)//----obj
                       function foo(){console.log(this)}//
                       foo()  //----window
                       this.method3() // ----obj
                      },
    method3:function(){console.log(this)}//代碼是在對(duì)象的method3方法的直接環(huán)境下執(zhí)行,所以也是指向obj
  
}

對(duì)象方法中只會(huì)影響直接環(huán)境下的this指向

所以在this混亂的情況下 寫(xiě)好 var _self = this 至關(guān)重要

舉例: jq中回調(diào)函數(shù)的this......

以上僅個(gè)人見(jiàn)解,,有誤,,請(qǐng)?zhí)岢?。。?!?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 什么是this this是JS中一個(gè)非常重要的關(guān)鍵字。this 就是你 call 一個(gè)函數(shù)時(shí),傳入的 contex...
    字母31閱讀 190評(píng)論 0 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,765評(píng)論 18 399
  • 最近一段時(shí)間學(xué)習(xí)了一下JS原型相關(guān)的知識(shí),其中一個(gè)重要的點(diǎn)是關(guān)于this關(guān)鍵字的值究竟是什么?講真,在此之前,雖然...
    大春春閱讀 1,467評(píng)論 1 7
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,774評(píng)論 0 9
  • 我想要自己慢下來(lái),不再急匆匆的趕著上班,不再為每一次排長(zhǎng)隊(duì)而心焦,不再為錯(cuò)過(guò)的公交車(chē)而懊惱,不再快快的沖涼只為多看...
    guiv閱讀 266評(píng)論 0 0