国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

有關JavaScript中this指向問題的深度解析

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 20:22:58
文檔

有關JavaScript中this指向問題的深度解析

有關JavaScript中this指向問題的深度解析:JavaScript 中的 this 指向問題有很多博客在解釋,仍然有很多人問。 與我們常見的很多語言不同,JavaScript 函數(shù)中的 this 指向并不是在函數(shù)定義的時候確定的,而是在調(diào)用的時候確定的。換句話說,函數(shù)的調(diào)用方式?jīng)Q定了 this 指向。 JavaScri
推薦度:
導讀有關JavaScript中this指向問題的深度解析:JavaScript 中的 this 指向問題有很多博客在解釋,仍然有很多人問。 與我們常見的很多語言不同,JavaScript 函數(shù)中的 this 指向并不是在函數(shù)定義的時候確定的,而是在調(diào)用的時候確定的。換句話說,函數(shù)的調(diào)用方式?jīng)Q定了 this 指向。 JavaScri

  這里已經(jīng)清楚了說明了,箭頭函數(shù)沒有自己的 this 綁定。箭頭函數(shù)中使用的 this,其實是直接包含它的那個函數(shù)或函數(shù)表達式中的 this。比如

const obj = {
 test() {
 const arrow = () => {
 // 這里的 this 是 test() 中的 this,
 // 由 test() 的調(diào)用方式?jīng)Q定
 console.log(this === obj);
 };
 arrow();
 },

 getArrow() {
 return () => {
 // 這里的 this 是 getArrow() 中的 this,
 // 由 getArrow() 的調(diào)用方式?jīng)Q定
 console.log(this === obj);
 };
 }
};

obj.test(); // true

const arrow = obj.getArrow();
arrow(); // true

  示例中的兩個 this 都是由箭頭函數(shù)的直接外層函數(shù)(方法)決定的,而方法函數(shù)中的 this 是由其調(diào)用方式?jīng)Q定的。上例的調(diào)用方式都是方法調(diào)用,所以 this 都指向方法調(diào)用的對象,即 obj。

  箭頭函數(shù)讓大家在使用閉包的時候不需要太糾結 this,不需要通過像 _this 這樣的局部變量來臨時引用 this 給閉包函數(shù)使用。來看一段 Babel 對箭頭函數(shù)的轉(zhuǎn)譯可能能加深理解:

// ES6
const obj = {
 getArrow() {
 return () => {
 console.log(this === obj);
 };
 }
}
// ES5,由 Babel 轉(zhuǎn)譯
var obj = {
 getArrow: function getArrow() {
 var _this = this;
 return function () {
 console.log(_this === obj);
 };
 }
};

  另外需要注意的是,箭頭函數(shù)不能用 new 調(diào)用,不能 bind() 到某個對象(雖然 bind() 方法調(diào)用沒問題,但是不會產(chǎn)生預期效果)。不管在什么情況下使用箭頭函數(shù),它本身是沒有綁定 this 的,它用的是直接外層函數(shù)(即包含它的最近的一層函數(shù)或函數(shù)表達式)綁定的 this。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

有關JavaScript中this指向問題的深度解析

有關JavaScript中this指向問題的深度解析:JavaScript 中的 this 指向問題有很多博客在解釋,仍然有很多人問。 與我們常見的很多語言不同,JavaScript 函數(shù)中的 this 指向并不是在函數(shù)定義的時候確定的,而是在調(diào)用的時候確定的。換句話說,函數(shù)的調(diào)用方式?jīng)Q定了 this 指向。 JavaScri
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日韩欧美精品一区二区三区 | 亚洲经典一区 | 欧美高清在线视频一区二区 | 欧美高清一区二区三 | 国产超级乱淫片中文 | 又粗又硬又大又深又爽动态图 | 99精品国产免费久久国语 | 2020精品极品国产色在线观看 | 日韩色视频一区二区三区亚洲 | 久久这里只有精品国产 | 日韩福利在线观看 | 小处雏高清一区二区三区 | 欧美精品一区二区三区免费 | 国产一区在线免费观看 | 欧美精品第二页 | 可以看的毛片网站 | 四虎成人精品免费影院 | 国产精品视频一区二区三区经 | 日韩欧美国产高清在线观看 | 精品国产一区二区三区免费看 | 国产伦精品一区二区三区高清 | 美女视频黄a视频免费全过程在线 | 亚洲视频在线观看网站 | 亚洲 欧美 日韩 综合 | 国产欧美久久一区二区 | 国产人成久久久精品 | 日本国产在线观看 | 亚洲欧美影院 | 亚欧国产 | 亚洲 欧美 自拍 另类 | 色婷婷国产| 国产视频播放 | 亚洲欧洲精品成人久久曰影片 | 国产午夜精品视频 | 91精品国产高清91久久久久久 | 欧洲亚洲一区 | 色精品一区二区三区 | 国产精品国产亚洲精品看不卡 | 国产精品一区二区免费 | 国产欧美日韩在线 | 国产精品久久久 |