大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 ES6箭頭函數的介紹

ES6箭頭函數的介紹

更新時間:2022-06-20 09:06:17 來源:動力節點 瀏覽725次

什么是箭頭函數(arrow function)

首先,我們來看一下過去我們撰寫函數的方法:

在ES6 中,我們可以把它改成箭頭函數的寫法,它會變成下面這樣:

沒有參數的時候要記得加上空括號

要特別留意的地方是,在箭頭函數中如果沒有帶入參數時,一樣要加上空括號。

如果只是要回傳某個值,可以省略return

如果我們的函式本身只是要回傳某個值的話,可以把return 這個字省略掉:

箭頭函數帶入參數值

兩個以上的參數,需要使用括號

當我們的函式擁有兩個以上的參數時,我們一樣要使用括號來帶入參數,寫法像是下面這樣子:

當函數只有一個參數時,不需要使用括號

從上面的例子我們可以知道,當函數沒有參數或有兩個以上的參數時,我們都要加上括號( ),但是當函數只有一個參數時,可以省略括號不寫,因此,當我們的函數只有一個參數時,我們的函數長得像這樣:

箭頭函數當中的this 是定義時的對象,而不是使用時的對象

在使用箭頭函數時,有一點要注意的是,在箭頭函數中,this 指稱的對象在所定義時就固定了,而不會隨著使用時的脈絡而改變。

讓我們來看一下這個例子:

在這個范例中,不論我們使用的是原本function 的寫法或ES6中的箭頭函式,都會回傳得到最外層的window 物件,這樣看起來似乎兩者沒有太大的差別。

然而,換個例子的情況就不一樣,讓我們來看看下面兩個不同的例子:

例子一

我們分別用原本的寫法和箭頭函示的寫法建立了兩個function:

// 原本的 function
let fn = function(){
  console.log(this.constructor.name);  // Object(data)
  setTimeout(function(){
    console.log(this.constructor.name) // Window
  },100);
}
// 箭頭函式 Arrow function
let fn_arr = function(){
  console.log(this.constructor.name);  // Object(data)
  setTimeout(() => {
    console.log(this.constructor.name) // Object(data)
  },100);
}
let id = 21;
let data = {
  id: 21
}
fn.call(data);     
fn_arr.call(data); 

例子二

第二個例子是使用addEventListener 來達到示范,首先我們在HTML 中建立一個button element,然后利用JS 來抓取這個button,接著JS 部分則如下所示:

var button = document.querySelector('button');
var fn_arr = () => {
  // 建立 function 時 this 指 Window
  console.log(this.constructor.name)  // 執行function時 this 指 Window
};
var fn = function(){
  // 建立 function 時 this 指 Window
  console.log(this.constructor.name)  // 執行function時 this 指 HTMLButtonElement
button.addEventListener('click', fn_arr);

和例子一中的setTimeout 類似,我們使用的addEventListener ,也會在整個execution context 執行結束后,在網頁觸發事件時才執行。

因此不論在傳統的函式寫法(fn)或箭頭函式(fn_arr)的寫法,一開始建立function的時候this所指稱的都是 window 這個物件,然而,如果是使用傳統的寫法,在觸發這個事件時所指稱的對象會從原本的window 變成HTMLButtonElement;若使用的是箭頭函式,則會固定所指稱的對象,因此this 依然指稱的是window 這個物件。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本免费一区二区三区在线看 | 色综合社区 | 亚洲欧美中日韩 | 欧美ucjizz免费播放器 | 国产高清亚洲 | 国产区一区 | 国产伦精品一区二区三区在线观看 | 农村妇女高清毛片一级 | 800玖玖爱在线观看香蕉 | 这里只有精品久久 | 久久精品中文字幕一区 | 国产成人精品男人免费 | 国产永久免费爽视频在线 | 神马老子不卡视频在线 | 老司机永久免费网站在线观看 | 国产99久久亚洲综合精品 | 天天爽夜夜爽天天做夜夜做 | 看一级特黄a大一片 | 精品哟哟哟国产在线观看不卡 | 日韩女人做爰大片 | 亚欧精品一区二区三区四区 | 久久久久亚洲精品美女 | 青青青国产成人久久111网站 | 久草在线这里只有精品 | 日本老熟妇激情毛片 | 国产第一综合另类色区奇米 | 亚洲国产精品一区二区首页 | 西西人体大胆77777视频 | 欧美a在线观看 | 4hu四虎免费影院www | 干成人 | 2018一级毛片免费观看 | 久久黄视频 | 久久久麻豆 | 久久久精品国产四虎影视 | 中国美女牲交一级毛片 | 91在线 | 欧美 | 免费一级毛片在播放视频 | 国产成人亚洲精品一区二区在线看 | 亚洲午夜久久久久国产 | 免费看一级黄色毛片 |