<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一级免费视频| 亚洲第一综合天堂另类专| 青春禁区视频在线观看直播免费 | 毛片免费全部免费观看| 亚洲乱码一二三四区国产| 3344永久在线观看视频免费首页| 久久亚洲美女精品国产精品 | 亚洲Av无码国产情品久久| 女人裸身j部免费视频无遮挡| 亚洲男人天堂2020| 成年女人A毛片免费视频| 亚洲成AV人片在线观看无| 2020因为爱你带字幕免费观看全集| 亚洲日韩在线视频| 在线A级毛片无码免费真人| 美国毛片亚洲社区在线观看| 亚洲国产精品一区二区第四页| 男女拍拍拍免费视频网站| 亚洲精品亚洲人成人网| 男的把j放进女人下面视频免费| 亚洲精品私拍国产福利在线| **毛片免费观看久久精品| 亚洲中文字幕无码爆乳| 亚洲国产精品尤物yw在线| 暖暖日本免费中文字幕| 亚洲综合激情九月婷婷| 在线观看免费成人| 国内精品免费久久影院| 亚洲AV无码乱码在线观看代蜜桃| 全黄性性激高免费视频| 日韩精品人妻系列无码专区免费| 亚洲人成色777777老人头| 久久亚洲AV永久无码精品| 7m凹凸精品分类大全免费| 色偷偷亚洲第一综合网| 亚洲AV无码1区2区久久| 免费羞羞视频网站| 中文字幕免费不卡二区| 日韩亚洲国产高清免费视频| 亚洲无线观看国产精品|