Javascript ES6中的箭頭函式
ES6可以使用“箭頭”(=>)定義函式,注意是函式,不要使用這種方式定義類(構造器)。
一、語法
1. 具有一個引數的簡單函式
1 2 | var single = a => a single( 'hello, world' ) // 'hello, world' |
2. 沒有引數的需要用在箭頭前加上小括號
1 2 3 | var log = () => { alert( 'no param' ) } |
3. 多個引數需要用到小括號,引數間逗號間隔,例如兩個數字相加
1 2 | var add = (a, b) => a + b add(3, 8) // 11 |
4. 函式體多條語句需要用到大括號
1 2 3 4 5 6 7 | var add = (a, b) => { if ( typeof a == 'number' && typeof b == 'number' ) { return a + b } else { return 0 } } |
5. 返回物件時需要用小括號包起來,因為大括號被佔用解釋為程式碼塊了
1 2 3 4 5 6 7 | var getHash = arr => { // ... return ({ name: 'Jack' , age: 33 }) } |
6. 直接作為事件handler
1 2 3 | document.addEventListener( 'click' , ev => { console.log(ev) }) |
7. 作為陣列排序回撥
1 2 3 4 5 6 7 8 | var arr = [1, 9 , 2, 4, 3, 8].sort((a, b) => { if (a - b > 0 ) { return 1 } else { return -1 } }) arr // [1, 2, 3, 4, 8, 9] |
二、注意點
1. typeof運算子和普通的function一樣
1 2 | var func = a => a console.log( typeof func); // "function" |
2. instanceof也返回true,表明也是Function的例項
1 | console.log(func instanceof Function); // true |
3. this固定,不再善變
1 2 3 4 5 6 7 8 9 10 11 12 13 | obj = { data: [ 'John Backus' , 'John Hopcroft' ], init: function () { document.onclick = ev => { alert( this .data) // ['John Backus', 'John Hopcroft'] } // 非箭頭函式 // document.onclick = function(ev) { // alert(this.data) // undefined // } } } obj.init() |
這個很有用,再不用寫me
,self
, _this
了,或者bind
。
4. 箭頭函式不能用new
1 2 3 4 5 | var Person = (name, age) => { this .name = name this .age = age } var p = new Func( 'John' , 33) // error |
5. 不能使用argument
1 2 3 4 | var func = () => { console.log(arguments) } func(55) // |
對於5,在Firefox36裡測試是可以輸出55的,貌似並沒有這個限制
三、總結
以上就是關於ES6中箭頭函式的全部介紹內容,希望對大家了ES6中的箭頭函式能有所幫助。如果有疑問可以留言討論。
相關文章
- JavaScript(ES6)—箭頭函式JavaScript函式
- ES6箭頭函式函式
- JavaScript 箭頭函式JavaScript函式
- javascript箭頭函式JavaScript函式
- ES6箭頭函式的使用函式
- 撤底理解es6中的箭頭函式函式
- 深入理解ES6中的箭頭函式函式
- 箭頭函式中的this函式
- ES6 箭頭函式下的this指向函式
- ES6 箭頭函式(arrow function)函式Function
- ES6箭頭函式總結函式
- ES6 系列之箭頭函式函式
- 深入解析 ES6:箭頭函式函式
- javascript中的this使用場景以及箭頭函式中的thisJavaScript函式
- ES6中箭頭函式使用的注意事項函式
- ES6箭頭函式和它的作用域函式
- JavaScript初學者必看“箭頭函式”JavaScript函式
- JS中的箭頭函式與thisJS函式
- ES6箭頭函式的剩餘引數函式
- ES6系列之箭頭函式全解析函式
- ES6標準 Arrow Function(箭頭函式=>)Function函式
- 【ES6基礎】箭頭函式(Arrow functions)函式Function
- 箭頭函式函式
- 輕鬆學習 JavaScript(6):JavaScript 箭頭函式JavaScript函式
- 從 ES6 高階箭頭函式理解函式柯里化函式
- TypeScript 箭頭函式TypeScript函式
- JS箭頭函式JS函式
- 前端面試ES6系列:箭頭函式和普通函式的區別前端面試函式
- ES 6 中的箭頭函式及用法函式
- [面試專題]ES6之箭頭函式詳解面試函式
- ES6 箭頭函式你正確使用了嗎函式
- 箭頭函式this指向的陷阱函式
- 箭頭函式的this指向(二)函式
- 關於ES6的箭頭函式和展開運算子函式
- 輕鬆學習 JavaScript——第 6 部分:JavaScript 箭頭函式JavaScript函式
- 有關箭頭函式函式
- 箭頭函式詳解函式
- es6學習_箭頭函式解決this指向問題函式