日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

javascript中关于this指向问题详解

發布時間:2023/11/27 生活经验 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript中关于this指向问题详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 前 ?言

LiuDaP

   在前端的學習中,我們必然要用到js,js可以說是前端必不可少的的東西。在學習js的過程中,我們會經常用到this這個東西,而this的指向問題就變得尤為重要。今天正好有空閑時間,就給大家詳細介紹一下js中關于this的指向問題,希望能夠幫助到大家。

?  

一、this的指向原理

 >>>僅僅一條就是:誰最終調用函數,this就指向誰。。

下面給大家做一下詳細的解釋:

  (1)、this到底指向誰,不應該考慮函數在哪聲明,而是應該考慮函數在什么地方調用

  (2)、this指向的永遠只可能是對象,而不是函數。

  (3)、this指向的對象,叫做函數的上下文,也叫函數的content,還叫函數的調用者。

?

二、總結幾條關于this指向問題的規律

  >>>注意:以下幾條規律特別好用,如果必要的話可以直接背過。

  1、通過函數名()調用的函數,this永遠指向window。

    具體例子如下:

1 function func(){
2     this.name="wangwu";
3     console.log(this);
4 }
5 func(); //通過func()調用的,this永遠指向window。

?

  >>>以下代碼直接通過func()調用函數,則this指向window對象。

  2、函數作為window內置函數的回掉函數使用,this指向window。例如:setInterval setTimeout等。

    具體例子如下:

1 function func(){
2     this.name="wangwu";
3     console.log(this);
4 }
5 //函數作為window內置函數的回掉函數使用,this指向window。
6 setTimeout(func,1000);

  >>>以上代碼,func直接作為setTimeout的回掉函數使用,則this指向window對象。

  3、通過對象.方法調用函數,則this指向這個對象。

    具體例子如下:

 1 function func(){
 2     this.name="wangwu";
 3     console.log(this);
 4 }
 5 var obj={
 6     name:"zhangsan",
 7     func:func
 8 }
 9 //通過對象.方法調用的,this指向這個對象
10 obj.func(); //狹義對象,指向obj。

  >>>以上代碼,通過obj.func()進行調用,this指向這個obj。

?  4、函數作為數組中的一個元素,用數組下標進行調用的,this指向這個數組

    具體例子如下:

1 function func(){
2     this.name="wangwu";
3     console.log(this);
4 }
5 var arr=[1,2,3,func,4,5,6]; //此時函數作為數組中第四個元素
6 arr[3](); //直接用數組的下標調用函數,此時this指向arr。

  >>>以上代碼,func作為數組arr中的元素,通過arr[3]()進行調用,this指向arr

?  5、函數作為一個構造函數,使用new關鍵字進行調用,this指向用new關鍵字new出的對象。

    具體例子如下:

function func(){this.name="wangwu";console.log(this);
}
var obj=new func(); //此時通過new關鍵字進行調用,this指向obj這個新new出的對象

  >>>以上代碼,通過new關鍵字進行函數的調用,最終this指向這個新new出的對象

?  this的指向問題,最終的內容就是這么多,雖然看起來很簡單,但是真正遇到問題的時候也會有讓人為難的時候。

?

編者按

  我們都是在這條路上奔跑著的孩子,讓我們相互學習,共同努力吧!!!希望今天這點兒關于js中this指向問題的小內容對大家有一點點幫助吧,,畢竟我也是一個初入江湖的小菜鳥啊!!

轉載于:https://www.cnblogs.com/interesting-me/p/7670042.html

總結

以上是生活随笔為你收集整理的javascript中关于this指向问题详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。