JavaScript中的this指針

this是 JavaScript 中的一個(gè)關(guān)鍵字。它用在對(duì)象的方法中萨惑。 this 總是指向調(diào)用該方法的對(duì)象捐康。

一、使用this指針

1咒钟、在對(duì)象中使用this

var man = "劉德華";
var obj = {
    woman: "范冰冰",
    test: function () {
        // 1吹由、輸出值為"undefined"
        console.log(this.man);
        // 2若未、輸出值為“范冰冰”
        console.log(this.woman);
    }
};
// 3朱嘴、輸出值為“劉德華”
console.log(this.man);
obj.test();

(1)使用var關(guān)鍵字定義的變量默認(rèn)掛載在window對(duì)象下,而this又默認(rèn)指向window對(duì)象粗合,因此3中的this.man輸出“劉德華”萍嬉。
(2)根據(jù)this的定義,this將永遠(yuǎn)指向調(diào)用其方法的對(duì)象隙疚。因此在執(zhí)行obj對(duì)象下的test方法時(shí)壤追,因obj對(duì)象下并沒有man屬性所以輸出"undefined",而woman屬性包含在obj對(duì)象下所以輸出“范冰冰”供屉。

2行冰、在原型(Prototype)或構(gòu)造函數(shù)(Constructor)中使用this
var Obj = function () {
    this.name2 = "Fan bingbing";
};
Obj.prototype = {
    name: "范冰冰",
    test2: function () {
        console.log(this.name);
        console.log(this.name2);
    }
};
var obj2 = new Obj();
obj2.test2();

當(dāng)我們使用new關(guān)鍵字去實(shí)例化一個(gè)新對(duì)象的時(shí)候,this會(huì)指向原型或構(gòu)造函數(shù)所在的對(duì)象伶丐。此示例中的this會(huì)指向Obj對(duì)象

二悼做、改變this指向(JavaScript三劍客:bind()、call()哗魂、apply()

1肛走、使用call改變this指向
var test = function () {
    console.log(this.name);```````
};
var person = {
    name: "Fan bingbing"
};
test.call(person);

此示例通過call方法將this指針綁定到person對(duì)象上,因此輸出“Fan bingbing”录别。

2朽色、使用apply改變this指向
var test = function () {
    console.log(this.name);
};
var person = {
    name: "Fan bingbing"
};
test.apply(person);

此示例通過call方法將this指針綁定到person對(duì)象上邻吞,因此輸出“Fan bingbing”。

3葫男、使用bind改變this指向
var test = function () {
    console.log(this.name);
};
var person = {
    name: "Fan bingbing"
};
test.bind(person)();

此示例通過call方法將this指針綁定到person對(duì)象上抱冷,因此輸出“Fan bingbing”。

三腾誉、ES6中的this指針

1徘层、箭頭函數(shù)中的this
var man = "劉德華";
var obj = {
    woman: "范冰冰",
    test:  () => {
        // 1、輸出值為"undefined"
        console.log(this.man);
        // 2利职、輸出值為“范冰冰”
        console.log(this.woman);
    }
};
// 3趣效、輸出值為“劉德華”
console.log(this.man);
obj.test();

1、var關(guān)鍵字定義的變量默認(rèn)掛載于window對(duì)象上猪贪,this又默認(rèn)指向window對(duì)象跷敬,所以3中輸出“劉德華”。
2热押、obj對(duì)象的test方法是一個(gè)箭頭函數(shù)西傀,其能夠輸出this.man的值卻無法輸出this.woman的值,表明箭頭函數(shù)并不改變this指針指向桶癣。

2拥褂、class中的this
var man = "劉德華";
class Person {
    woman = "范冰冰";
    test() {
        console.log(this.man);
        console.log(this.woman);
    }
    static test2() {
        console.log(this);
        console.log(this.man);
        console.log(this.woman);
    }

}
var p = new Person();
Person.test2();
p.test();

1、在Class中牙寞,this指針將指向其自身饺鹃,而當(dāng)實(shí)例化之后this將指向其實(shí)例,所以輸出“范冰冰”而無法輸出"劉德華"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載间雀,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者悔详。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市惹挟,隨后出現(xiàn)的幾起案子茄螃,更是在濱河造成了極大的恐慌,老刑警劉巖连锯,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件归苍,死亡現(xiàn)場離奇詭異,居然都是意外死亡运怖,警方通過查閱死者的電腦和手機(jī)拼弃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驳规,“玉大人肴敛,你說我怎么就攤上這事。” “怎么了医男?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵砸狞,是天一觀的道長。 經(jīng)常有香客問我镀梭,道長刀森,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任报账,我火速辦了婚禮研底,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘透罢。我一直安慰自己榜晦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布羽圃。 她就那樣靜靜地躺著乾胶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朽寞。 梳的紋絲不亂的頭發(fā)上识窿,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音脑融,去河邊找鬼喻频。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肘迎,可吹牛的內(nèi)容都是我干的甥温。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼膜宋,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼窿侈!你這毒婦竟也來了炼幔?” 一聲冷哼從身側(cè)響起秋茫,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乃秀,沒想到半個(gè)月后肛著,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跺讯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年枢贿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刀脏。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡局荚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耀态,我是刑警寧澤轮傍,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站首装,受9級(jí)特大地震影響创夜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仙逻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一驰吓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧系奉,春花似錦檬贰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瞬内,卻和暖如春迷雪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背虫蝶。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工章咧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人能真。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓赁严,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粉铐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疼约,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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

  • this 誰調(diào)用就是誰 obj.getName()調(diào)用getName的是obj,此時(shí)this指向的是obj,所以打...
    馮正_566c閱讀 170評(píng)論 0 0
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,089評(píng)論 1 32
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,095評(píng)論 0 3
  • 函數(shù)和對(duì)象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語言來說都是核心的概念蝙泼。通過函數(shù)可以封裝任意多條語句程剥,而且...
    道無虛閱讀 4,525評(píng)論 0 5
  • 今天是2018年10月19日,不知不覺今天已經(jīng)過去一大半汤踏,時(shí)間真是飛逝织鲸。
    Eason_Yang閱讀 148評(píng)論 0 0