關(guān)于js里面的this理解

在這里主要主要解釋的都是函數(shù)中的this
js中的this代表的是當(dāng)前函數(shù)執(zhí)行的主體;
1.this是誰和函數(shù)在哪里定義的和執(zhí)行的都沒有關(guān)系克懊,那么怎么才能去區(qū)分this?(非嚴(yán)格模式)
(1)函數(shù)的執(zhí)行七蜘,首先我們先看函數(shù)前面有沒有“ . ”谭溉,如果有的話,“ . ”前面是誰橡卤,this就是誰扮念;如果沒有電的話,這時候this就是window碧库。
例:

function fn () {
  console.log(this)
}
var obj = {fn: fn};
fn() //這時候fn里面的this就是window
obj.fn()  // 這時候的this就是window

var obj1 = {
  sum: function () {
    fn()  //這個fn里面的this還是window
  }
}
obj1.sum()  //這時候sum里面的this是obj1

(2)自執(zhí)行函數(shù)里面的this永遠(yuǎn)是window柜与。

(3)給元素的某一個函數(shù)綁定方法巧勤,當(dāng)事件觸發(fā)的時候,執(zhí)行對應(yīng)的函數(shù)旅挤,方法中的this是當(dāng)前函數(shù)踢关。

 <button id='btn'>點擊</button>
<script>
  function fn () {
  console.log(this)
}
  doucument.getElementById('btn').onclick = fn ; //當(dāng)點擊btn按鈕的時候fn中的this是#btn

</script>

(4)在構(gòu)造函數(shù)模式中伞鲫,類中(函數(shù)體中)出現(xiàn)的this.xxx = xxx中的this是當(dāng)前類的一個實例粘茄。
例:

function CreatePersonal (name, age) {
// 瀏覽器默認(rèn)創(chuàng)建了p1,這時候this就是指的p1
 this.name = name;  
 this.age = age;
 this.personal = function () {
    console.log('name'+ this.name + ';' + 'age' + this.age)
  }
}
var p1 = new CreatePersonal('ant', 35);
p1.personal()

(5)使用call/apply來改變this的指向(一旦遇到了上述四條都沒有用了)

2.嚴(yán)格模式下 ‘use strict’
(1)自執(zhí)行函數(shù)中的this永遠(yuǎn)是undefined

var obj = {
  fn: (function () {
    // this-> undefined
    return function () {
      // this -> obj
     }
  })(0)
};
obj.fn()

(2)方法執(zhí)行秕脓,看方法前面是否有‘.’柒瓣,有的話,‘.’前面是誰this就是誰吠架,沒有的話this就是undefined

var obj = function () {
  fn: fn
};
function () {}
fn() // undefined
obj.fn() // this->obj

這時候我們發(fā)現(xiàn)嚴(yán)格模式下的this相對于非嚴(yán)格模式下的this主要區(qū)別在于: 相對于js代碼中沒有執(zhí)行主體的情況下芙贫,非嚴(yán)格模式下默認(rèn)都是window;但是在嚴(yán)格模式下傍药,沒有寫就是沒有執(zhí)行主體磺平,this指向的是undefined

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拐辽,隨后出現(xiàn)的幾起案子拣挪,更是在濱河造成了極大的恐慌,老刑警劉巖俱诸,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菠劝,死亡現(xiàn)場離奇詭異,居然都是意外死亡睁搭,警方通過查閱死者的電腦和手機赶诊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來园骆,“玉大人舔痪,你說我怎么就攤上這事⌒客伲” “怎么了辙喂?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸠珠。 經(jīng)常有香客問我巍耗,道長,這世上最難降的妖魔是什么渐排? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任炬太,我火速辦了婚禮,結(jié)果婚禮上驯耻,老公的妹妹穿的比我還像新娘亲族。我一直安慰自己炒考,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布霎迫。 她就那樣靜靜地躺著斋枢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪知给。 梳的紋絲不亂的頭發(fā)上瓤帚,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音涩赢,去河邊找鬼戈次。 笑死,一個胖子當(dāng)著我的面吹牛筒扒,可吹牛的內(nèi)容都是我干的怯邪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼花墩,長吁一口氣:“原來是場噩夢啊……” “哼悬秉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冰蘑,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤和泌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后懂缕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體允跑,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年搪柑,在試婚紗的時候發(fā)現(xiàn)自己被綠了聋丝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡工碾,死狀恐怖弱睦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渊额,我是刑警寧澤况木,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站旬迹,受9級特大地震影響火惊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奔垦,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一屹耐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椿猎,春花似錦惶岭、人聲如沸寿弱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽症革。三九已至,卻和暖如春鸯旁,著一層夾襖步出監(jiān)牢的瞬間噪矛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工羡亩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摩疑,地道東北人危融。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓畏铆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吉殃。 傳聞我的和親對象是個殘疾皇子辞居,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,150評論 0 13
  • 函數(shù)和對象 1蛋勺、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念瓦灶。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,566評論 0 5
  • 1.概念 在JavaScript中抱完,this 是指當(dāng)前函數(shù)中正在執(zhí)行的上下文環(huán)境贼陶,因為這門語言擁有四種不同的函數(shù)調(diào)...
    BluesCurry閱讀 1,132評論 0 2
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,237評論 0 4
  • 今天隨手翻閱了一下《麥肯錫從邏輯思考到高效執(zhí)行的規(guī)律和方法》的書,淺談一下“邏輯思維”巧娱。 從邏輯的科學(xué)...
    D048魔法閱讀 645評論 0 1