<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
        主站蜘蛛池模板: 国产精品99久久免费观看| 四虎一区二区成人免费影院网址| 久久免费线看线看| 免费观看又污又黄在线观看| 国产精品99精品久久免费| 亚洲人成人无码网www电影首页| www.亚洲成在线| 国内精品乱码卡1卡2卡3免费| 亚洲国产成人精品青青草原| 免费AA片少妇人AA片直播| 亚洲成a人片在线不卡| 蜜桃精品免费久久久久影院| 亚洲av无码专区在线电影| 五月婷婷亚洲综合| 中文字幕在线观看免费| 婷婷亚洲综合五月天小说| 亚洲视频在线免费| 久久亚洲国产伦理| 91在线视频免费看| 麻豆一区二区三区蜜桃免费| 亚洲乱亚洲乱妇无码麻豆| 30岁的女人韩剧免费观看| 亚洲中文无码mv| 精品国产香蕉伊思人在线在线亚洲一区二区| 国产精品免费久久| 亚洲精品韩国美女在线| 女人18一级毛片免费观看| 免费大片av手机看片| 亚洲爆乳无码一区二区三区| 在线免费观看h片| 亚洲国产人成在线观看| 国产91在线免费| 日韩视频免费在线观看| 亚洲精华国产精华精华液网站 | 人妻仑刮八A级毛片免费看| 亚洲一区二区三区香蕉| 69成人免费视频| 一二三区免费视频| 国产成人亚洲精品| 亚洲人成网77777亚洲色 | 美女视频黄的全免费视频|