序文
第III章「ECMAScript6を理解する」から抜粋この記事 - 機能は、主な内容は次のとおりです。伝統的な矢印関数の機能、構文との違いは、その上矢印、すぐにこの矢印機能を使用して機能を実行する関数を作成し、
差関数と従来の機能矢印
- この、スーパー、引数、また結合new.targetない:その値はどこに最も近い非矢印関数によって決定されています
- 新しい呼び出すことはできません:矢印機能しない[[コンストラクタ]]メソッドをコンストラクタが新しいものであるとして、呼び出すことはできません
- プロトタイプん:なしprototypeプロパティ
- あなたはこれを変更することはできません。この定数の値が含む関数によって決定され、その値の関数のライフサイクル全体
- 引数はオブジェクトん:矢印関数は引数、パラメータ、またはパラメータをバインドしない機能にアクセスするために、残りのパラメータに依存してきました
- パラメータを繰り返すことは許されない:strictモードまたは非strictモードかどうか、パラメータを複製ことはできません。
文法
単一のパラメータは、括弧を省略する場合
|
|
パラメータの数、パラメータなしでは、括弧を必要とします
|
|
|
|
空の関数を作成します
|
|
オブジェクトリテラルを返します:括弧でラップされたオブジェクトリテラルを、括弧は関数リテラルではない体を表します
|
|
注意:上面的箭头函数都是没有使用花括号的,这种情况下js引擎默认添加了return。而使用花括号后,需要手动添加return语句,如果没加,函数将不返回值
创建立即执行函数
使用传统函数时,(function(){})()、(function(){}())都可以,而箭头函数只支持(() => {})();
|
|
没有this绑定
传统函数中的this可以被改变,其值取决于调用该函数时的上下文
|
|
使用bind()方法
|
|
箭头函数没有this绑定,this只能通过查找作用域来确定。如果箭头函数被包含在一个非箭头函数内,那么this就与该函数的this相等;否则,this值为undefined
|
|
注意:由于箭头函数的this值由包含它的函数决定,因此不能使用call、apply、bind方法来改变this值
没有arguments对象
虽然箭头函数没有自己的arguments对象,但是可以访问包含它的函数的arguments对象
|
|