定義乙個箭頭函式很簡單,基本語法是:
([param] [, param]) =>
param => expression
param 是引數,根據引數個數不同,分這幾種情況:
() => // 零個引數用 () 表示;
x => // 乙個引數可以省略 ();
(x, y) => // 多引數不能省略 ();
當然,和普通函式一樣,箭頭函式也可以使用 es6 新增的「預設引數」和「剩餘引數」( firefox15+ 開始支援):
var func1 = (x = 1, y = 2) => x + y;
func1(); // 得到 3
var func2 = (x, ...args) => ;
func2(1,2,3); // 輸出 [2, 3]
箭頭函式允許多行語句或者單行表示式作為函式體。多行語句要用 {} 括起來;單行表示式不需要 {},並且會作為函式返回值:
x => ; // 函式返回 x * x
x => x * x; // 同上一行
x => return x * x; // syntaxerror 報錯,不能省略 {}
x => ; // 合法,沒有定義返回值,返回 undefined
箭頭函式也是 js 函式的一種,所以之前的 instanceof 和 typeof 依然可用:
var func1 = () => {};
func1 instanceof function; // true
var func2 = () => {};
typeof func2; // "function"
箭頭函式內部沒有 constructor 方法,也沒有 prototype,所以不支援 new 操作。new (() => {}) 會觸發 typeerror 報錯。
new (() => {}) // uncaught typeerror: () => {} is not a constructor(…)
箭頭函式沒有自己內部的 this 指標。在箭頭函式中, this 指標是繼承於其所在的作用域。(個人理解為箭頭函式不具備函式作用域,相當於表示式,this即為箭頭函式被呼叫時外層的this)
var a = 1;
var test = ,
d: ()=>
}test.c();//100
test.d();//1
es6箭頭函式
本例是在了解es6知識後在原來定義函式的基礎上進行理解var searchvalue 查詢匹配物件 var button var input var select button if searchvalue.input undefined button.click else 重新整理 tableli...
es6 箭頭函式
1.單引數 function cheng a 3 let cheng a 3 a a console.log cheng 9 2.多引數 function add a,b let add a,b a b 預設返回值 console.log add 3,9 3.無返回值 function add a,...
ES6 箭頭函式
es6 中,箭頭函式就是函式的一種簡寫形式,使用括號包裹數,跟隨乙個 緊接著是函式體 var getprice function 箭頭函式 var getprice 9.15 箭頭函式不僅僅是讓 變得簡潔,函式中 this 總是繫結總shi 指向物件自身 function person 1000 使...