<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 21:18:36
        文檔

        javaScript中的this示例學習詳解及工作原理_基礎知識

        javaScript中的this示例學習詳解及工作原理_基礎知識:this的工作原理 如果一個函數被作為一個對象的方法調用,那么this將被指派為這個對象。 代碼如下:var parent = { method: function () { console.log(this); }};parent.method();// 注意這種行為非常脆弱,如果你獲取一個方法的引用并且調用
        推薦度:
        導讀javaScript中的this示例學習詳解及工作原理_基礎知識:this的工作原理 如果一個函數被作為一個對象的方法調用,那么this將被指派為這個對象。 代碼如下:var parent = { method: function () { console.log(this); }};parent.method();// 注意這種行為非常脆弱,如果你獲取一個方法的引用并且調用

        this的工作原理

        如果一個函數被作為一個對象的方法調用,那么this將被指派為這個對象。
        代碼如下:
        var parent = {
        method: function () {
        console.log(this);
        }
        };

        parent.method();
        // <- parent


        注意這種行為非常“脆弱”,如果你獲取一個方法的引用并且調用,那么this的值不會是parent了,而是window全局對象。這讓大多數開發者迷惑。
        代碼如下:
        ThisClownCar();
        // <- Window

        改動this

        .call、 .apply 和.bind 方法用來操作調用函數的方式,幫我們定義this的值和傳遞給函數的參數值。

        Function.prototype.call 可以有任意數量的參數,第一個參數被分配給this,剩下的被傳遞給調用函數。

        代碼如下:
        Array.prototype.slice.call([1, 2, 3], 1, 2)
        // <- [2]

        Function.prototype.apply 的行為和.call類似,但它傳遞給函數的參數是一個數組,而不是任意參數。

        String.prototype.split.apply('13.12.02', ['.'])
        // <- ['13', '12', '02']

        Function.prototype.bind 創建一個特殊的函數,該函數將永遠使用傳遞給.bind的參數作為this的值,以及能夠分配部分參數,創建原函數的珂里化(curride)版本。

        代碼如下:
        var arr = [1, 2];
        var add = Array.prototype.push.bind(arr, 3);

        // effectively the same as arr.push(3)
        add();

        // effectively the same as arr.push(3, 4)
        add(4);

        console.log(arr);
        // <- [1, 2, 3, 3, 4]

        作用域鏈中的this

        在下面的例子,this將無法在作用域鏈中保持不變。這是規則的缺陷,并且常常會給業余開發者帶來困惑。

        代碼如下:
        function scoping () {
        console.log(this);

        return function () {
        console.log(this);
        };
        }

        scoping()();
        // <- Window
        // <- Window

        有一個常見的方法,創建一個局部變量保持對this的引用,并且在子作用域中不能有同命變量。子作用域中的同名變量將覆蓋父作用域中對this的引用。http://www.cnblogs.com/sosoft/
        代碼如下:
        function retaining () {
        var self = this;

        return function () {
        console.log(self);
        };
        }

        retaining()();
        // <- Window

        除非你真的想同時使用父作用域的this,以及當前this值,由于某些莫名其妙的原因,我更喜歡是使用的方法.bind函數。這可以用來將父作用域的this指定給子作用域。

        代碼如下:
        function bound () {
        return function () {
        console.log(this);
        }.bind(this);
        }

        bound()();
        // <- Window

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

        文檔

        javaScript中的this示例學習詳解及工作原理_基礎知識

        javaScript中的this示例學習詳解及工作原理_基礎知識:this的工作原理 如果一個函數被作為一個對象的方法調用,那么this將被指派為這個對象。 代碼如下:var parent = { method: function () { console.log(this); }};parent.method();// 注意這種行為非常脆弱,如果你獲取一個方法的引用并且調用
        推薦度:
        標簽: 原理 里面的 詳解
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品免费视在线观看| 亚洲欧美中文日韩视频| 国产男女爽爽爽免费视频| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 区三区激情福利综合中文字幕在线一区亚洲视频1 | 日韩免费精品视频| 亚洲国产成a人v在线| 精品免费久久久久久久| 亚洲一线产区二线产区精华| 57pao国产成永久免费视频| 亚洲欧洲自拍拍偷午夜色| 免费a级毛片高清视频不卡| 亚洲欧美日韩一区二区三区| 国产午夜免费福利红片| 亚美影视免费在线观看| 亚洲人成色777777在线观看| 91制片厂制作传媒免费版樱花| 亚洲国产福利精品一区二区| 欧美男同gv免费网站观看 | 四虎影视永久免费视频观看| 深夜免费在线视频| 亚洲国产精品第一区二区| 青娱分类视频精品免费2| 亚洲va中文字幕| 久久久久亚洲AV无码专区桃色| 两个人看的www免费高清| 亚洲香蕉免费有线视频| 在线免费视频一区| 国产又黄又爽胸又大免费视频| 亚洲视频在线一区| 免费观看大片毛片| 国产在线精品一区免费香蕉| 亚洲色图古典武侠| 无码欧精品亚洲日韩一区夜夜嗨 | 大学生一级特黄的免费大片视频| 国产精品亚洲综合| 亚洲AV无码码潮喷在线观看| 无码少妇一区二区浪潮免费| 永久免费精品影视网站| 亚洲国产日韩女人aaaaaa毛片在线| 国产乱子伦片免费观看中字|