<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答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指向問題的深度解析

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

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

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

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

        const obj = {
         test() {
         const arrow = () => {
         // 這里的 this 是 test() 中的 this,
         // 由 test() 的調用方式決定
         console.log(this === obj);
         };
         arrow();
         },
        
         getArrow() {
         return () => {
         // 這里的 this 是 getArrow() 中的 this,
         // 由 getArrow() 的調用方式決定
         console.log(this === obj);
         };
         }
        };
        
        obj.test(); // true
        
        const arrow = obj.getArrow();
        arrow(); // true

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

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

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

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

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

        文檔

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

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产免费MV大全视频网站| 亚洲人精品亚洲人成在线| 人妻18毛片a级毛片免费看| 韩国二级毛片免费播放| 豆国产96在线|亚洲| 哒哒哒免费视频观看在线www| 亚洲第一街区偷拍街拍| 午夜成年女人毛片免费观看| 亚洲精品无码久久久久秋霞| 国产男女猛烈无遮挡免费视频| 白白色免费在线视频| 亚洲人成网站在线观看青青| 成av免费大片黄在线观看| 亚洲av成人无码久久精品| 免费人妻无码不卡中文字幕系| 亚洲国产美女在线观看| 一个人免费观看在线视频www| 亚洲av成人一区二区三区在线播放| 免费观看午夜在线欧差毛片| 久久av免费天堂小草播放| 亚洲不卡av不卡一区二区| 日本免费人成在线网站| 青青青亚洲精品国产| 国产亚洲A∨片在线观看| 最近免费中文在线视频| 亚洲日韩精品无码专区| 亚洲欧洲久久av| 69视频免费观看l| 亚洲AV无码专区在线观看成人| 亚洲国产成人乱码精品女人久久久不卡 | 国产免费怕怕免费视频观看| 久久一区二区免费播放| 在线观看亚洲人成网站| 成人性生交大片免费看无遮挡| 一边摸一边爽一边叫床免费视频| 亚洲AV无码久久精品色欲| 久久久久久99av无码免费网站| 色爽黄1000部免费软件下载| 亚洲最大的成网4438| 日韩亚洲国产二区| 青草草色A免费观看在线|