在es6中,箭頭函數是一種使用「=>」定義函數的新語法;箭頭函數的函數體內的this指向總是指向定義它所在的對象,而不會指向呼叫它的對象,且不可以改變this的改變,語法為「let fun=(參數) => {函數體};」。
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
在ES6中,箭頭函數是其中最有趣的新增功能。顧名思義,箭頭函數是一種使用箭頭(=>)定義函數的新語法,但是它與傳統的JavaScript函數有些許不同,主要集中在以下方面:
沒有this、super、arguments和new.target綁定,其值由外圍最近一層非箭頭函數決定
不能透過new關鍵字呼叫
沒有原型
不可以改變this的綁定
#不支援arguments物件
不支援重複的命名參數
函數體內的this的指向總是指向定義它所在的對象,而不會指向呼叫它的對象,我們知道es5中的函數是誰執行它,它就指向誰。
如下:
var f = v = > v; //等同于 var f = function(v){ return v; } var sum = (num1,num2) => num1+num2 ; //等同于 var sum = function(num1,num2){ return num1+num2 } [1,2,3].map(function (x) { return x * x; }); // 箭头函数写法 [1,2,3].map(x => x * x);//简洁了许多
從例子我們可以看出,省略了function,花括號‘{}’用‘=>’代替了。這種寫法更簡潔了。
範例如下;
//1、参数默认值 位置在所有形参的后面 //es6之前的采取的默认值只能变相采取 function test(a,b) { a=a||2; b=b||2; return a*b } console.log(test()); //但是这个有弊端 当我们传递的值为0的时候,还是会走默认值。改造之后 function test1(a,b) { a=typeof a==="undefined"?2:a; b=typeof b==="undefined"?2:b; return a*b } console.log(test1(0,0)) // es6为我们提供了默认值 // 语法糖: function(a,b=2){} let test2=(a=2,b=2) =>{ return a*b }; console.log(test2());
輸出結果:
#【相關推薦:javascript影片教學、web前端】
以上是es6箭頭函數是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!