成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

箭頭函數(shù)的this指向

raoyi / 2909人閱讀

摘要:箭頭函數(shù)的指向箭頭函數(shù)的指向的地方并不是函數(shù)調用的詞法作用域,而是聲明時的詞法作用于?;谶@個新的改變,可以看出在改變以往的不合理的地方下足了功夫。試圖希望讓變成一門面向對象的強語言的決心。

箭頭函數(shù)的this指向 this
箭頭函數(shù)的this指向的地方并不是函數(shù)調用的詞法作用域,而是聲明時的詞法作用于。詳情請看下例:
var fn = function(){
    console.log(this);
}

var obj = {
    prop : fn
}

obj.prop()  //{prop: ?n}
var fn = () => {
    console.log(this);
}

var obj = {
    prop : fn
}

obj.prop()  //Window
上面兩段代碼中,不同的僅僅是function的聲明方式,一個沿用傳統(tǒng)的function關鍵字聲明,一個使用了新的 => 箭頭函數(shù)進行聲明,然后這兩個this指向的結果完全不同,一個按照傳統(tǒng)的方式,指向了被調用的詞法作用域,也就是obj,所以this指向了obj,而另一個則是直接指向了聲明fn方法的詞法作用域,也就是Window。

基于這個新的改變,可以看出ES6在改變javascript以往的不合理的地方下足了功夫。試圖希望讓javascript變成一門面向對象的強語言的決心。

需要注意的地方
基于新特性,以往在使用匿名函數(shù)的時候,不能再隨意使用this了,如:
elem.addEventListener("click",function(){
    //this ==> elem 
},false)

elem.addEventListener("click",() => {
    //this ==> 該代碼的詞法作用域 如 Window 
},false)
這里如果直接按原來的模式將function 替換成 => 的話就會出現(xiàn)上述問題,需要注意。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/97827.html

相關文章

  • 論普通函數(shù)箭頭函數(shù)區(qū)別以及箭頭函數(shù)注意事項、不適用場景

    摘要:第二種情況是箭頭函數(shù)的如果指向普通函數(shù)它的繼承于該普通函數(shù)。箭頭函數(shù)的指向全局,使用會報未聲明的錯誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數(shù)是ES6的API,相信很多人都知道,因為其語法上相對于普通函數(shù)更簡潔,深受大家的喜愛。就是這種我們日常開發(fā)中一直在使用的API...

    paulquei 評論0 收藏0
  • ES6精解:箭頭函數(shù)

    摘要:基本用法在中允許使用來定義函數(shù),如下就等同于從上面可以看出,在箭頭左側的是代表參數(shù),若參數(shù)只有一個,可以省略,箭頭右側的表示函數(shù)代碼塊,若代碼塊里面是個返回值,則可以省略不寫無參數(shù)情況若箭頭函數(shù)不需要參數(shù),則左側用代替,如下無參數(shù)情況無參數(shù) 基本用法 在ES6中允許使用 => 來定義函數(shù),如下: var f = a => a; console.log(f(1)); //1 就...

    HackerShell 評論0 收藏0
  • ES6箭頭函數(shù)體中this指向哪里?

    摘要:注意因為箭頭函數(shù)內部的是指向外層代碼塊的最近的,例中的函數(shù)的,所以我們可以通過改變外層代碼塊的的指向從而改變箭頭函數(shù)中的指向例中使用了函數(shù)的方法。 一、this關鍵字小測試 ES6箭頭函數(shù)體中的this指向哪里? 在回答這個問題之前先來揣揣你對this關鍵字的了解程度:(讓我們回到ES6之前)題: var obj = { a: function() { cons...

    Half 評論0 收藏0
  • ES6 - 箭頭函數(shù)、箭頭函數(shù)與普通函數(shù)區(qū)別總結

    摘要:但是因為箭頭函數(shù)沒有自己的,它的其實是繼承了外層執(zhí)行環(huán)境中的,且指向永遠不會隨在哪里調用被誰調用而改變,所以箭頭函數(shù)不能作為構造函數(shù)使用,或者說構造函數(shù)不能定義成箭頭函數(shù),否則用調用時會報錯報錯箭頭函數(shù)沒有自己的箭頭函數(shù)沒有自己的對象。 這篇文章我們來了解一下ES6中的箭頭函數(shù)。首先會介紹一下箭頭函數(shù)的基本語法,因為基本語法比較好理解,我們用示例做簡單介紹即可。之后,我們重點來討論一下...

    scola666 評論0 收藏0
  • es6箭頭函數(shù)

    摘要:但是箭頭函數(shù)并沒有自己的其是繼承了外層執(zhí)行環(huán)境的,且不能改變,因此不能作為構造函數(shù),此時,引擎會在報錯。不能作為事件的回調在中,事件的回調函數(shù)中,會動態(tài)的指向監(jiān)聽的對象,但是由于監(jiān)聽是一個全局函數(shù),所以箭頭函數(shù)的回調中指向。 箭頭函數(shù) es6中添加了函數(shù)新的定義語法——箭頭函數(shù),當有大于一個形參的時候,必須使用()代表部分參數(shù),函數(shù)體大于一行時,必須使用{}將函數(shù)體括起來,并使用ret...

    UnixAgain 評論0 收藏0
  • 關于ES6中箭頭函數(shù)this問題

    摘要:對象的指向是可變的,但是在箭頭函數(shù)中,它是固定的。同樣的由于箭頭函數(shù)沒有自己的所以傳統(tǒng)的顯性綁定無效內部的指向外部在的學習中,的指向問題一直是個難點,特別是在對象方法中使用時,必須更加小心。由此箭頭函數(shù)在很大程度上減少了我們的困擾。 什么是箭頭函數(shù) 用法 ES6 允許使用箭頭(=>)定義函數(shù) 測試 var p1 = document.getElementById(test1)...

    LeviDing 評論0 收藏0

發(fā)表評論

0條評論

raoyi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<