ES6中箭頭函式的定義與呼叫方式詳解

2022-10-03 18:18:10 字數 1400 閱讀 6264

基本用法:

es6中允許使用「箭頭」(=>)定義函式

var f = v => v;

上面**相當於:

var f = function( v )

根據箭頭函式有引數和無引數來區分

1、無引數的箭頭函式

var f = () => 5;

等同於var f = function() ;

2、有引數的箭頭函式

var sum = ( a, b) => a + b;

等同於var sum = function( a, b)

有的函式體內的語句大於一條的話,它的寫法如下使用乙個大括號將其括起來,並使用return語句返回

var sum = (a, b) =>

由於大括號被解釋為**塊,所以如果箭頭函式直接返回乙個物件時,必須在物件外面加乙個大括號

var getfunction = id => ();

箭頭函式也可以與變數解構結合使用:

const full = () => first +" "+ last;

等同於function full(person)

使用箭頭函式可以讓函式表達的更加簡潔

箭頭函式的乙個用處是簡化**函式

[1,2,3].map(function(x));

使用箭頭函式的寫法

[1,2,3].map(x => x*x);

另乙個例子

var result = values.sort(function(a, b));

箭頭函式的寫法

var result = values.sort((a, b) => a-b);

使用rest引數與箭頭函式結合的例子

const numbers = (...nums) => nums程式設計客棧;

numbers(1,2,3,4,5,6,7,8,9); //[1,2,3,4,5,6,7,8,9]

//...nums 表示的是乙個陣列

const headandtail = ( head, ...tail) => [head, tail];

headandtail(1,2,3,4,5,6,7,8,9);// [1, [2,3,4,5,6,7,8,9]]

使用箭頭函式注意幾點:

1、函式體內的this物件就是定義時所在的物件,而不是使用時所在物件;

2、不可以當作建構函式使用,也就是不能用new命令例項化乙個物件,否則會丟擲乙個錯誤;

3、不可以使用arguments物件,該物件程式設計客棧在函式體內不存在,如果要用的話,可以用rest引數代替;

4、不可以使用yield命令,箭頭函式不能用作generator函式;

總結本文標題: es6中箭頭函式的定義與呼叫方式詳解

本文位址: /ruanjian/j**a/192658.html

ES6中箭頭函式的作用

那為什麼在es6中引入了箭頭函式呢?最主要的目的就是解決this指標的問題。我們知道在es6中,我們可以建立乙個class,如果我們預設在其裡面加入乙個函式的話,其必須在呼叫的時候,必須繫結this指標,否則不能訪問當前類的例項裡面的屬性。下面舉乙個具體的例子,為什麼其能解決this指標的問題。比如...

ES6中箭頭函式中的this指向

箭頭函式的this指向與一般的function函式定義不同 箭頭函式的this定義 是在定義函式的時候繫結,而不是在執行的時候繫結 何為執行時繫結 來看下面的例子 let a 1 let obj obj.sayhi 輸出的是2一般的定義函式執行的時候決定this的執行,我們不難看出obj.say 的...

ES6中箭頭函式與普通函式this的區別

普通函式中的this 1.this總是代表它的直接呼叫者,例如 obj.func 那麼func中的this就是obj 2.在預設情況 非嚴格模式下,未使用 use strict 沒找到直接呼叫者,則this指的是 window 3.在嚴格模式下,沒有直接呼叫者的函式中的this是 undefined...