JS 中的this

var obj = {
    hanshu : function (){};
}
var hanshu = obj.hanshu;

/* 調(diào)用hanshu的兩種寫法 */
/*第一種*/
obj.hanshu();

/*第二種*/
hanshu();

雖然obj.shanshu() 和 hanshu()都指向同一個(gè)函數(shù)搁宾,但是執(zhí)行結(jié)果可能就不一樣隆圆。

var obj = {
    hanshu : function (){
    console.log(this.a)
    },
a :8
}
var hanshu = obj.hanshu;
var a = 5;
/* 調(diào)用hanshu的兩種寫法 */
/*第一種*/
obj.hanshu();  // 8

/*第二種*/
hanshu(); //5



兩者都是指向同一個(gè)函數(shù)但是運(yùn)行結(jié)果卻不一樣沾歪,是因?yàn)楹瘮?shù)的執(zhí)行環(huán)境不同,函數(shù)體內(nèi)部使用了this關(guān)鍵字霹粥。對(duì)于obj.hanshu()來(lái)說(shuō),hanshu運(yùn)行在obj環(huán)境疼鸟,所以this指向obj蒙挑;對(duì)于hanshu()來(lái)說(shuō),hanshu運(yùn)行在全局環(huán)境愚臀,所以this指向全局環(huán)境忆蚀。所以矾利,兩者的運(yùn)行結(jié)果不一樣。但是為什么var hasnhu = obj.hanshu馋袜,hanshu()就變成在全局環(huán)境執(zhí)行男旗?

var obj = { a:5 }

javascript會(huì)先在內(nèi)存里面生成一個(gè)對(duì)象:{ a:5 },然后把這個(gè)對(duì)象的內(nèi)存地址賦值給變量obj欣鳖。此時(shí)obj存的就是一個(gè)地址察皇。讀取obj{a:5}就是讀取javascript生成的對(duì)象:{ a:5 }的地址。

上面代碼中泽台,函數(shù)體里面使用了變量x什荣。該變量由運(yùn)行環(huán)境提供。
現(xiàn)在問(wèn)題就來(lái)了怀酷,由于函數(shù)可以在不同的運(yùn)行環(huán)境執(zhí)行稻爬,所以需要有一種機(jī)制,能夠在函數(shù)體內(nèi)部獲得當(dāng)前的運(yùn)行環(huán)境(context)蜕依。所以桅锄,this就出現(xiàn)了,它的設(shè)計(jì)目的就是在函數(shù)體內(nèi)部样眠,指代函數(shù)當(dāng)前的運(yùn)行環(huán)境友瘤。
obj.foo()是通過(guò)obj找到foo,所以就是在obj環(huán)境執(zhí)行檐束。一旦var foo = obj.foo辫秧,變量foo就直接指向函數(shù)本身,所以foo()就變成在全局環(huán)境執(zhí)行被丧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟戏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晚碾,更是在濱河造成了極大的恐慌抓半,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件格嘁,死亡現(xiàn)場(chǎng)離奇詭異笛求,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)糕簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門探入,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人懂诗,你說(shuō)我怎么就攤上這事蜂嗽。” “怎么了殃恒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵植旧,是天一觀的道長(zhǎng)辱揭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)病附,這世上最難降的妖魔是什么问窃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮完沪,結(jié)果婚禮上域庇,老公的妹妹穿的比我還像新娘。我一直安慰自己覆积,他們只是感情好听皿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宽档,像睡著了一般尉姨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雌贱,一...
    開(kāi)封第一講書(shū)人閱讀 49,798評(píng)論 1 290
  • 那天啊送,我揣著相機(jī)與錄音偿短,去河邊找鬼欣孤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昔逗,可吹牛的內(nèi)容都是我干的降传。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼勾怒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼婆排!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起笔链,我...
    開(kāi)封第一講書(shū)人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤段只,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鉴扫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赞枕,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年坪创,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炕婶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡莱预,死狀恐怖柠掂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情依沮,我是刑警寧澤涯贞,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布枪狂,位于F島的核電站,受9級(jí)特大地震影響宋渔,放射性物質(zhì)發(fā)生泄漏摘完。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一傻谁、第九天 我趴在偏房一處隱蔽的房頂上張望孝治。 院中可真熱鬧,春花似錦审磁、人聲如沸谈飒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杭措。三九已至,卻和暖如春钾恢,著一層夾襖步出監(jiān)牢的瞬間手素,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工瘩蚪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泉懦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓疹瘦,卻偏偏與公主長(zhǎng)得像崩哩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子言沐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

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

  • 一邓嘹、問(wèn)題的由來(lái) 學(xué)懂 JavaScript 語(yǔ)言,一個(gè)標(biāo)志就是理解下面兩種寫法险胰,可能有不一樣的結(jié)果汹押。 var ob...
    grain先森閱讀 7,083評(píng)論 11 83
  • 沒(méi)搞錯(cuò)吧!js寫了那么多年起便,this還是會(huì)搞錯(cuò)棚贾!沒(méi)搞錯(cuò),javascript就是回搞錯(cuò)缨睡! ………… 在寫java的...
    zhoulujun閱讀 1,436評(píng)論 0 11
  • 最近在看《你不知道的JavaScript(上卷)》鸟悴,覺(jué)得書(shū)中關(guān)于this的知識(shí)點(diǎn)講解的比較透徹易懂,在此做一些整理...
    jeff_nz閱讀 590評(píng)論 0 0
  • 二零一九年第一天,覺(jué)得新的一年應(yīng)該有個(gè)新的開(kāi)始陋守,于是震贵,打開(kāi)電腦利赋,注冊(cè)了簡(jiǎn)書(shū),希望從新燃起寫作夢(mèng)猩系。 看著簡(jiǎn)書(shū)上一個(gè)個(gè)...
    芊蔚淺語(yǔ)閱讀 416評(píng)論 0 11
  • 文/陳麗娟 每日的生活如川流不息的溪水媚送,潺潺流淌著我內(nèi)心的夢(mèng)。我的生活還...
    笑依然陳麗娟閱讀 371評(píng)論 0 2