JavaScript中this指向問題

javascript 中this指向并不是在函數(shù)定義的時(shí)候確定的塔淤,而是在函數(shù)調(diào)用時(shí)確定的流礁,也就是說,函數(shù)的調(diào)用方式?jīng)Q定了this的指向妹蔽。
JavaScript中普通函數(shù)調(diào)用方式有三種:直接調(diào)用椎眯,方法調(diào)用和new調(diào)用,還有一些特殊調(diào)用胳岂,比如编整,通過bind()將函數(shù)綁定到對(duì)象之后再進(jìn)行調(diào)用,通過call()乳丰,apply()進(jìn)行調(diào)用等
直接調(diào)用

即為通過函數(shù)名()調(diào)用掌测,這是,函數(shù)內(nèi)部的this指向全局變量产园,在瀏覽器中全局對(duì)象是window汞斧,在nodejs中全局對(duì)象是global
需要注意的是,直接調(diào)用不只是全局作用下進(jìn)行調(diào)用淆两,在任何作用域下断箫,只要通過函數(shù)名()調(diào)用,都叫做直接調(diào)用

bind()對(duì)直接調(diào)用的影響

Function.protype.bind()作用是將當(dāng)前函數(shù)與指定的對(duì)象綁定秋冰,并返回一個(gè)新函數(shù)仲义,這個(gè)函數(shù)無論以什么樣的方式調(diào)用,其this始終指向綁定的對(duì)象

var obj={};
function test(){
console.log(this==obj);
}
var testObj = test.bind(obj);
test();//false
testObj();true
call()和apply()對(duì)this的影響

Function.protype.apply()和Function.protype.call()第一個(gè)參數(shù)指向函數(shù)運(yùn)行時(shí)this指向,不過使用apply和call的時(shí)候仍然需要注意埃撵,如果目錄函數(shù)本身是一個(gè)綁定了this對(duì)象的函數(shù)赵颅,那apply和call不會(huì)像預(yù)期那樣執(zhí)行,例

var obj = {};
function test(){
  console.log(this===obj);
}
//綁定一個(gè)新對(duì)象
var testObj = test.bind({});
test.apply(obj);//true
testObj.apply(testObj);//false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暂刘,一起剝皮案震驚了整個(gè)濱河市饺谬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谣拣,老刑警劉巖募寨,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異森缠,居然都是意外死亡拔鹰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門贵涵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來列肢,“玉大人,你說我怎么就攤上這事宾茂〈陕恚” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵跨晴,是天一觀的道長(zhǎng)欧聘。 經(jīng)常有香客問我,道長(zhǎng)坟奥,這世上最難降的妖魔是什么树瞭? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮爱谁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孝偎。我一直安慰自己访敌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布衣盾。 她就那樣靜靜地躺著寺旺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪势决。 梳的紋絲不亂的頭發(fā)上阻塑,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音果复,去河邊找鬼陈莽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的走搁。 我是一名探鬼主播独柑,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼私植!你這毒婦竟也來了忌栅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤曲稼,失蹤者是張志新(化名)和其女友劉穎索绪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贫悄,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡者春,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了清女。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钱烟。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嫡丙,靈堂內(nèi)的尸體忽然破棺而出拴袭,到底是詐尸還是另有隱情,我是刑警寧澤曙博,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布拥刻,位于F島的核電站,受9級(jí)特大地震影響父泳,放射性物質(zhì)發(fā)生泄漏般哼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一惠窄、第九天 我趴在偏房一處隱蔽的房頂上張望蒸眠。 院中可真熱鬧,春花似錦杆融、人聲如沸楞卡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蒋腮。三九已至,卻和暖如春藕各,著一層夾襖步出監(jiān)牢的瞬間池摧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工激况, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留作彤,地道東北人膘魄。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像宦棺,于是被迫代替她去往敵國(guó)和親瓣距。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 1. this之謎 在JavaScript中代咸,this是當(dāng)前執(zhí)行函數(shù)的上下文蹈丸。因?yàn)镴avaScript有4種不同的...
    百里少龍閱讀 1,010評(píng)論 0 3
  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持儡遮,譯者再次奉上一點(diǎn)點(diǎn)福利:阿里云產(chǎn)品券柬脸,享受所有官網(wǎng)優(yōu)惠鸦采,并抽取幸運(yùn)大...
    HetfieldJoe閱讀 6,926評(píng)論 15 54
  • 特別說明滨攻,為便于查閱够话,文章轉(zhuǎn)自https://github.com/getify/You-Dont-Know-JS...
    殺破狼real閱讀 695評(píng)論 0 1
  • 與其他語(yǔ)言相比,函數(shù)的this關(guān)鍵字在JavaScript中的表現(xiàn)略有不同光绕,此外女嘲,在嚴(yán)格模式和非嚴(yán)格模式之間也會(huì)有...
    codingC閱讀 575評(píng)論 0 0
  • 福建泉州-陳素欽在交流群里講到:“中學(xué)時(shí)代的一位數(shù)學(xué)老師,他每天中午都放棄午休時(shí)間為我們這些窮苦學(xué)子講課诞帐,...
    甘草gc閱讀 420評(píng)論 0 0