400-650-7353
您所在的位置:首頁 > IT干貨資料 > web前端 > 【W(wǎng)eb前端基礎(chǔ)知識】Js中this的指向指的什么

【W(wǎng)eb前端基礎(chǔ)知識】Js中this的指向指的什么

  • 發(fā)布: Web前端培訓(xùn)
  • 來源:Web前端干貨資料
  • 2020-03-18 18:33:29
  • 閱讀()
  • 分享
  • 手機(jī)端入口

JavaScript中this的存在為我們寫代碼提供了非常多的幫助,但是在具體使用的時(shí)候this的具體指向會變得各不相同,在本篇文章中,我們將詳細(xì)討論this的指向機(jī)制。

首先我們要明確一個(gè)概念,this既不是指向當(dāng)前函數(shù),也不是某個(gè)固定的對象,而是函數(shù)在執(zhí)行時(shí)的環(huán)境對象。也就是是說,函數(shù)內(nèi)this的指向只和函數(shù)是如何被調(diào)用的有關(guān),和函數(shù)的定義方式以及位置等沒有必然的聯(lián)系。

1. 最普通的函數(shù)調(diào)用

上述案例中,我們可以認(rèn)為全局函數(shù)demo是頂層對象window的方法,所以可以認(rèn)為是window在調(diào)用demo函數(shù),所以其中的this指向的是window對象。

  1. function demo(){ 
  2. console.log(this); 
  3. demo(); 

2. 對象方法中的this

在上面這個(gè)案例中,執(zhí)行的雖然也是demo函數(shù),但是在我們是通過obj對象對demo函數(shù)的引用訪問到demo函數(shù)的,所以可以認(rèn)為是obj對象在調(diào)用函數(shù)demo,函數(shù)內(nèi)this的this就要指向obj對象。

  1. function demo(){ 
  2. console.log(this); 
  3. var obj = { 
  4. foo:demo 
  5. obj.foo(); 

3. 定時(shí)器中的this

在第一個(gè)定時(shí)器中,通過定時(shí)器執(zhí)行函數(shù)demo時(shí),可以依然認(rèn)為demo是全局對象window的方法,所以是window對象在調(diào)用demo函數(shù),所以this依然指向window。而第二個(gè)定時(shí)器中是一個(gè)匿名函數(shù),一般匿名函數(shù)的執(zhí)行具有全局性,也就是可以認(rèn)為匿名函數(shù)是是在全局環(huán)境中被調(diào)用的,那么該定時(shí)器函數(shù)內(nèi)的this就指向了全局環(huán)境對象window。

  1. function demo(){ 
  2. console.log(this); 
  3. setTimeout(demo,1000); 
  4. setTimeout(function(){ 
  5. console.log(this); 
  6. },2000); 

文章“【W(wǎng)eb前端基礎(chǔ)知識】Js中this的指向指的什么”已幫助

>>本文地址:http://m.nfbqydst.cn/zhuanye/2020/48500.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營全域電商運(yùn)營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME