<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 22:31:15
        文檔

        用最簡單的方法判斷JavaScript中this的指向(推薦)

        用最簡單的方法判斷JavaScript中this的指向(推薦):都說 JavaScript 是一種很靈活的語言,這其實也可以說它是一個混亂的語言。它把 函數式編程 和 面向對象編程 糅合一起,再加上 動態語言 特性,簡直強大無比(其實是不能和C++比的,^_^ )。 JS 里的 this 在 function 內部被創建 指向調用時所在函數
        推薦度:
        導讀用最簡單的方法判斷JavaScript中this的指向(推薦):都說 JavaScript 是一種很靈活的語言,這其實也可以說它是一個混亂的語言。它把 函數式編程 和 面向對象編程 糅合一起,再加上 動態語言 特性,簡直強大無比(其實是不能和C++比的,^_^ )。 JS 里的 this 在 function 內部被創建 指向調用時所在函數

        都說 JavaScript 是一種很靈活的語言,這其實也可以說它是一個混亂的語言。它把 函數式編程 和 面向對象編程 糅合一起,再加上 動態語言 特性,簡直強大無比(其實是不能和C++比的,^_^ )。

        JS 里的 this

      1. 在 function 內部被創建
      2. 指向調用時所在函數所綁定的對象(拗口)
      3. this 不能被賦值,但可以被 call/apply  改變
      4. 目錄

        * 一個特例
        * 開始判斷
            * 法則一:對象方法中的this指向對象本身(箭頭函數形式的除外)
            * 法則二:多層嵌套函數中的this指向等同于包含該this的最近一個function的this
            * 法則三:箭頭函數以及非指向對象方法中的function的情況下this指向window
        * 習題集
            * 普通函數中的this
            * 函數執行后返回另外一個函數中的this(普通函數中)
            * 多層嵌套函數中的this(定時器&箭頭函數)1
            * 多層嵌套函數中的this(定時器&箭頭函數)2

        一個特例

        在正式開始之前,我們先來說一個特例。

        // 構造函數
        function Student(name) {
         this.name = name
        }
        // 創建小明和小紅兩個實例
        var XM = new Student('xiaoming')
        var XH = new Student('xiaohong')
        // 
        輸出信息 console.log(XM) // Student {name: "xiaoming"} console.log(XH) // Student {name: "xiaohong"}

        在構造函數中,this上的值會在創建實例的時候被綁定到新創建的實例上。不適用于下面的判斷方法,所以特此說明。

        開始判斷

        下面是一個典型例子,我們的分析從這里開始。

        var x = {
         name: 'bw2',
         getName1: function() {
         console.log(this)
         },
         getName2: function() {
         setTimeout(() => {
         console.log(this)
         },0)
         },
         getName31: () => {
         console.log(this)
         },
         getName32: function() {
         return function() {
         console.log(this)
         }
         }
        }
        x.getName1() // {name: "bw2", getName1: ƒ}
        x.getName2() // {name: "bw2", getName1: ƒ}
        x.getName31() // Window {stop: ƒ, open: ƒ, alert: ƒ, confirm: ƒ, prompt: ƒ, …}
        x.getName32()() // Window {stop: ƒ, open: ƒ, alert: ƒ, confirm: ƒ, prompt: ƒ, …}

        法則一:對象方法中的this指向對象本身(箭頭函數形式的除外)

        var x = {
         name: 'bw2',
         getName1: function() {
         console.log(this)
         }
        }
        x.getName1() // {name: "bw2", getName1: ƒ}

        法則二:多層嵌套函數中的this指向等同于包含該this的最近一個function的this

        箭頭函數沒有獨立的this作用域,所以繼續往外層走,走到了getName: function(){}。那么就是他了,this指向等同于這個function內部的this指向。根據法則一,this指向對象本身。

        var x = {
         name: 'bw2',
         getName2: function() {
         console.log(this) // 等同于此處的this
         setTimeout(() => {
         console.log(this) // 原始的this位置
         },0)
         }
        }
        x.getName2() // {name: 'bw2', getName1: ƒ}

        我們可以試著在瀏覽器中運行,看看結果。

        法則三:箭頭函數以及非指向對象方法中的function的情況下this指向window

        根據法則二,this是指向最近的function,因此,這里的this等同于返回的函數中的this,不是對象方法中的this,所以,指向全局。

        是不是感覺有點奇怪?不過實踐證明確實如此。

        var x = {
         name: 'bw2',
         getName31: () => {
         console.log(this)
         },
         getName32: function() {
         return function() {
         console.log(this)
         }
         }
        }
        x.getName31() // Window {stop: ƒ, open: ƒ, alert: ƒ, confirm: ƒ, prompt: ƒ, …}
        x.getName32()() // Window {stop: ƒ, open: ƒ, alert: ƒ, confirm: ƒ, prompt: ƒ, …}

        習題集

        歡迎大家按照法則一到三依次判斷,猜測結果,并在瀏覽器下測試。測試結果也可以回復,大家一起討論。

        因本人能力有限,該系列法則可能在部分情況下失效。歡迎大家一起討論。

        下面是做題時間。

        普通函數中的this

        function x() {
         console.log(this)
        }
        x()

        函數執行后返回另外一個函數中的this(普通函數中)

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

        多層嵌套函數中的this(定時器&箭頭函數)1

        var x = {
         name: 'bw2',
         getName: () => {
         setTimeout(() => {
         console.log(this)
         },0)
         }
        }
        x.getName()

        多層嵌套函數中的this(定時器&箭頭函數)2

        var x = {
         name: 'bw2',
         getName: () => {
         setTimeout(function() {
         console.log(this)
         },0)
         }
        }
        x.getName()

        再次說明,該法則為實驗性法則,未進行大范圍的測試,不保證在所有情況下都有一致的結果。如果你發現了法則判斷失敗的情況,歡迎留言,一起探討。

        總結

        以上所述是小編給大家介紹的Mysql 5.7.19 winx64 ZIP Archive 安裝及使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

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

        文檔

        用最簡單的方法判斷JavaScript中this的指向(推薦)

        用最簡單的方法判斷JavaScript中this的指向(推薦):都說 JavaScript 是一種很靈活的語言,這其實也可以說它是一個混亂的語言。它把 函數式編程 和 面向對象編程 糅合一起,再加上 動態語言 特性,簡直強大無比(其實是不能和C++比的,^_^ )。 JS 里的 this 在 function 內部被創建 指向調用時所在函數
        推薦度:
        標簽: 判斷 javascript this
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 在线观看午夜亚洲一区| 四虎影院免费在线播放| 亚洲色偷拍区另类无码专区| 亚洲av无码专区国产不乱码 | 亚洲今日精彩视频| 久久香蕉国产线看免费| 婷婷久久久亚洲欧洲日产国码AV | 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲成av人片天堂网无码】| 成人黄18免费视频| 色综合久久精品亚洲国产| 日韩免费无砖专区2020狼| 免费的黄网站男人的天堂 | 在线视频免费观看高清| 亚洲啪AV永久无码精品放毛片| 在线日韩av永久免费观看| 无人视频免费观看免费视频| 亚洲天堂中文字幕在线| 国产精品免费无遮挡无码永久视频| 亚洲人成网站影音先锋播放| 国产成在线观看免费视频| 相泽南亚洲一区二区在线播放| 亚洲精品国产自在久久| 免费久久人人爽人人爽av| 亚洲老熟女@TubeumTV| 免费鲁丝片一级观看| 成人免费夜片在线观看| 亚洲VA中文字幕不卡无码| 久久不见久久见中文字幕免费| 色费女人18女人毛片免费视频| 日本红怡院亚洲红怡院最新| www.999精品视频观看免费| 久久亚洲精品成人无码| 亚洲精品V欧洲精品V日韩精品 | 亚洲国产亚洲综合在线尤物| 国产一卡二卡3卡四卡免费| 日韩在线一区二区三区免费视频| 久久久久久a亚洲欧洲AV| 久久不见久久见中文字幕免费 | 色九月亚洲综合网| 亚洲成人午夜在线|