基本用法:
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...