欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript中 帶名 匿名 箭頭函數(shù)的重要區(qū)別(推薦)

 更新時(shí)間:2017年01月29日 11:08:29   作者:daigualu  
這篇文章主要介紹了Javascript中 帶名 匿名 箭頭函數(shù)的重要區(qū)別,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧

帶名函數(shù)是指函數(shù)顯示地給出了一個(gè)名字的函數(shù),function abs(x){}。匿名函數(shù)是指函數(shù)只帶有function這個(gè)關(guān)鍵字,而沒(méi)有像abs這種函數(shù)名稱的函數(shù),如function(){}。ES6標(biāo)準(zhǔn)新增了一種新的函數(shù):Arrow Function(箭頭函數(shù))箭頭函數(shù)表面上相當(dāng)于匿名函數(shù),并且簡(jiǎn)化了函數(shù)定義。它們各自的區(qū)別是什么呢?

1 帶名和匿名函數(shù)的區(qū)別

區(qū)別:匿名函數(shù)需要講地址賦值給另一個(gè)變量let a,然后再用a來(lái)調(diào)用函數(shù);而帶名函數(shù)因?yàn)轱@示地給出了函數(shù)名稱,所以可以直接用這個(gè)函數(shù)名稱調(diào)用。

帶名函數(shù)返回值是函數(shù)體內(nèi)的返回值,如abs(x)函數(shù)的返回值是number變量。函數(shù)調(diào)用時(shí),直接abs(6)調(diào)用,這個(gè)非常好理解。

function abs(x){
 if(x>=0){
  return x;
 }else{
  return -x;
 }
}

但是匿名函數(shù)呢?如下所示,函數(shù)未顯示地給出一個(gè)函數(shù)名稱,但是此處的abs被賦值為這個(gè)匿名函數(shù)的地址,所以使用時(shí)可以直接用abs(-3),諸如此類的調(diào)用。

let abs=function(x){ 
 if(x>=0){
  return x;
 }else{
  return -x;
 }
}

2 箭頭函數(shù)

ES6標(biāo)準(zhǔn)新增了一種新的函數(shù):Arrow Function(箭頭函數(shù))。為什么叫Arrow Function?因?yàn)樗亩x用的就是一個(gè)箭頭。箭頭函數(shù)表面上相當(dāng)于匿名函數(shù),并且簡(jiǎn)化了函數(shù)定義。

箭頭函數(shù)有兩種格式,一種是只包含一個(gè)表達(dá)式,連{ … }和return都省略掉了。

x => x * x

上面的箭頭函數(shù)相當(dāng)于一個(gè)匿名函數(shù)“”

function (x) {
 return x * x;
}

還有一種可以包含多條語(yǔ)句,這時(shí)候就不能省略{ … }和return:

(x,y) => {
 if (x > 0) {
  return x + y;
 }
 else {
  return -x + y;
 }
}

3 箭頭函數(shù)和匿名函數(shù)的不同

箭頭函數(shù)看上去是匿名函數(shù)的一種簡(jiǎn)寫(xiě),但實(shí)際上,箭頭函數(shù)和匿名函數(shù)有個(gè)明顯的區(qū)別:箭頭函數(shù)內(nèi)部的this是詞法作用域,由上下文確定。

調(diào)用函數(shù)obj1.getAge(2017)和調(diào)用obj2.getAge(2017)會(huì)得到相同的結(jié)果嗎?

obj1中fn函數(shù),由于JavaScript函數(shù)對(duì)this綁定的錯(cuò)誤處理,得不到預(yù)期的結(jié)果,this.birth指向window或undefined。

但是obj2,fn函數(shù)是箭頭函數(shù),箭頭函數(shù)完全修復(fù)了this的指向,this總是指向詞法作用域,也就是外層調(diào)用者obj2。

var obj1 = {
 birth: 1990,
 getAge: function (year) { 
  let fn=function(y){
   return y - this.birth; // this指向window或undefined
  }; 
  return fn(year); 
 }
};
var obj2 = {
 birth: 1990,
 getAge: function (year) {
  var fn = (y) => y - this.birth; // this.birth為1990
  return fn(year);
 }
};

4 總結(jié)

和帶名函數(shù)相比,匿名函數(shù)需要講地址賦值給另一個(gè)變量let a,然后再用a來(lái)調(diào)用函數(shù);和匿名函數(shù)比,箭頭函數(shù)完全修復(fù)了this的指向,this總是指向詞法作用域。

以上所述是小編給大家介紹的Javascript中 帶名 匿名 箭頭函數(shù)的重要區(qū)別,希望對(duì)大家有所幫助,如果有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • javascript中的隱式調(diào)用

    javascript中的隱式調(diào)用

    本篇文章給大家詳細(xì)介紹了javascript中的隱式調(diào)用相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的可以跟著小編一起學(xué)習(xí)下。
    2018-02-02
  • 一個(gè)仿微博登陸郵箱提示框js開(kāi)發(fā)案例

    一個(gè)仿微博登陸郵箱提示框js開(kāi)發(fā)案例

    這篇文章主要為大家詳細(xì)介紹了一個(gè)仿郵箱登錄提示框js開(kāi)發(fā)案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例

    JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)Unicode編碼轉(zhuǎn)換的具體操作技巧,需要的朋友可以參考下
    2017-04-04
  • 詳解JavaScript如何避免內(nèi)存泄漏

    詳解JavaScript如何避免內(nèi)存泄漏

    這篇文章主要為大家詳細(xì)介紹了JavaScript內(nèi)存泄漏的編程模式,并提供一些內(nèi)存管理的改進(jìn)方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2023-10-10
  • 微信小程序綁定手機(jī)號(hào)獲取驗(yàn)證碼功能

    微信小程序綁定手機(jī)號(hào)獲取驗(yàn)證碼功能

    這篇文章主要介紹了微信小程序綁定手機(jī)號(hào)獲取驗(yàn)證碼功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • JavaScript設(shè)計(jì)模式中的觀察者模式

    JavaScript設(shè)計(jì)模式中的觀察者模式

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式中的觀察者模式,觀察者設(shè)計(jì)模式適用于監(jiān)聽(tīng)一對(duì)多的操作,例如監(jiān)聽(tīng)對(duì)象屬性的修改等等,觀察者模式能夠降低代碼耦合度,提升可擴(kuò)展性
    2022-06-06
  • 如何減少瀏覽器的reflow和repaint

    如何減少瀏覽器的reflow和repaint

    本文主要是結(jié)合自己的一些項(xiàng)目經(jīng)驗(yàn),給大家提出了幾點(diǎn)減少瀏覽器reflow和repaint的方法和注意事項(xiàng),希望對(duì)大家能有所幫助。
    2015-02-02
  • javascript 數(shù)組排序函數(shù)

    javascript 數(shù)組排序函數(shù)

    javascript的數(shù)組排序函數(shù) sort方法,默認(rèn)是按照ASCII 字符順序進(jìn)行升序排列。
    2009-08-08
  • JavaScript控制圖片加載完成后調(diào)用回調(diào)函數(shù)的方法

    JavaScript控制圖片加載完成后調(diào)用回調(diào)函數(shù)的方法

    這篇文章主要介紹了JavaScript控制圖片加載完成后調(diào)用回調(diào)函數(shù)的方法,實(shí)例分析了javascript回調(diào)函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能示例

    微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能示例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)多選框全選與取消全選功能,結(jié)合實(shí)例形式分析了微信小程序多選框功能實(shí)現(xiàn)、布局顯示及全選、取消全選相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05

最新評(píng)論