Javascript關(guān)鍵字this

this 誰調(diào)用就是誰

var name = 'a';   
var obj = {   
  name: 'b',   
  getName: function() {   
    console.log(this.name);   
  }  
};  
obj.getName(); //b
var getName = obj.getName;  
getName();  //a
var obj2 = (function() {   
  return function() {   
    console.log(this.name);   
  }  
})();  
obj2(); //a

obj.getName()調(diào)用getName的是obj,此時this指向的是obj,所以打印的是b
而調(diào)用getName()的是window,此時this指向的是window.所以打印的是a
obj2()里面用到了立即執(zhí)行函數(shù),返回的是一個函數(shù),而調(diào)用的也是window,this指向的是window

var length = 10;
function fn() {
    console.log(this.length);
}
var obj3 = {
  method: function(fn) {
    fn();
    arguments[0]();
  }
};

obj3.method(fn, 1);//10 2

雖然在程序執(zhí)行時得运,使用了obj3.method方法嗜历,讓this指向了obj3,但是真正的函數(shù)執(zhí)行在函數(shù)體內(nèi)部嘶是,也即當(dāng)fn()執(zhí)行的時候,this是指向window的蛛碌,所以第一次執(zhí)行結(jié)果是10
分析下在method(fn,1)執(zhí)行時聂喇,經(jīng)歷了什么: 首先兩個參數(shù)fn和1會被放入arguments中,在arguments中第一個參數(shù)就是我們傳入的函數(shù)蔚携;接下來fn執(zhí)行希太,此時this沒有綁定因此指向window,輸出10酝蜒。 然而到了arguments0這一句跛十,相當(dāng)于把arguments[0]中的第一個參數(shù)拿來執(zhí)行, 效果如下:
arguments0執(zhí)行,等同于arguments.0()
這樣我們可以更清楚知道,this是指向arguments實例本身
復(fù)制代碼arguments.length就是它本身的長度(arguments是一個類數(shù)組秕硝,具有l(wèi)ength屬性),因此輸出2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洲尊,一起剝皮案震驚了整個濱河市远豺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坞嘀,老刑警劉巖躯护,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丽涩,居然都是意外死亡棺滞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門矢渊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來继准,“玉大人,你說我怎么就攤上這事矮男∫票兀” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵毡鉴,是天一觀的道長崔泵。 經(jīng)常有香客問我,道長猪瞬,這世上最難降的妖魔是什么憎瘸? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮陈瘦,結(jié)果婚禮上幌甘,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好含潘,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布饲做。 她就那樣靜靜地躺著,像睡著了一般遏弱。 火紅的嫁衣襯著肌膚如雪盆均。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天漱逸,我揣著相機與錄音泪姨,去河邊找鬼。 笑死饰抒,一個胖子當(dāng)著我的面吹牛肮砾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袋坑,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼仗处,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枣宫?” 一聲冷哼從身側(cè)響起婆誓,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎也颤,沒想到半個月后洋幻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡翅娶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年文留,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竭沫。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡燥翅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜕提,到底是詐尸還是另有隱情权旷,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布贯溅,位于F島的核電站拄氯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏它浅。R本人自食惡果不足惜译柏,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姐霍。 院中可真熱鬧鄙麦,春花似錦典唇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骂因,卻和暖如春炎咖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寒波。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工乘盼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俄烁。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓绸栅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親页屠。 傳聞我的和親對象是個殘疾皇子粹胯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 總結(jié):fn.call(thisarg,arg); 閉包下的this對象 高級程序書第182 以下轉(zhuǎn)載自:h...
    天字一等閱讀 239評論 0 0
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,118評論 0 13
  • 函數(shù)和對象 1辰企、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念风纠。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,527評論 0 5
  • 暑假打開微信朋友圈蟆豫,艾瑞德老師們的文章鋪天蓋涌現(xiàn)。每天睡醒第一件事和晚上睡前最后一件事情一定是打開手機懒闷,欣賞...
    向日葵班閱讀 396評論 0 4
  • Lancyandkaxifa閱讀 95評論 0 0