TECH I.S.

React ES6アロー関数


アロー関数

アロー関数を使用すると、より短い関数構文を記述できます。

前:

hello = function() {   return "Hello World!"; }

自分で試してみる(開発準備中) »

アロー機能の場合:

hello = () => {   return "Hello World!"; }

自分で試してみる(開発準備中) »

より短くできます!関数にステートメントが1つしかなく、そのステートメントが値を返す場合は、括弧returnキーワードを削除できます。

アロー関数はデフォルトで値を返します:

hello = () => "Hello World!";

自分で試してみる(開発準備中) »

注:これは関数にステートメントが1つしかない場合にのみ機能します。

パラメータがある場合は括弧内に渡します。

パラメーター付きアロー関数:

hello = (val) => "Hello " + val;

自分で試してみる(開発準備中) »

パラメーターが1つしかない場合は、括弧もスキップできます。

括弧なしのアロー関数:
hello = val => "Hello " + val;

[これ]()

自分で試してみる(開発準備中) »


thisとは?

thisの処理も、アロー関数では通常の関数とは異なります。

つまり、アロー関数ではthisのバインドはありません。

通常の関数では、thisキーワードは、ウィンドウ、ドキュメント、ボタンなど、関数を呼び出したオブジェクトを表します。

アロー関数では、thisキーワードいつもアロー関数を定義したオブジェクトを表します。

違いを理解するために、2つの例を見てみましょう。

どちらの例もメソッドを2回呼び出します。1回目はページの読み込み時、もう1回はユーザーがボタンをクリックしたときです。

最初の例では通常の関数を使用し、2番目の例ではアロー関数を使用しています。

結果は、最初の例が2つの異なるオブジェクト(ウィンドウとボタン)を返し、2番目の例がHeaderオブジェクトを2回返すことを示しています。

通常の機能で、this関数を呼び出したオブジェクトを表します。

class Header {   constructor() {     this.color = "Red";   } //Regular function:   changeColor = function() {     document.getElementById("demo").innerHTML += this;   } } const myheader = new Header(); //The window object calls the function: window.addEventListener("load", myheader.changeColor); //A button object calls the function: document.getElementById("btn").addEventListener("click", myheader.changeColor);

自分で試してみる(開発準備中) »

アロー関数では、thisが関数を呼び出したかに関係なく、Headerオブジェクトを表します。

class Header {   constructor() {     this.color = "Red";   } //Arrow function:   changeColor = () => {     document.getElementById("demo").innerHTML += this;   } } const myheader = new Header(); //The window object calls the function: window.addEventListener("load", myheader.changeColor); //A button object calls the function: document.getElementById("btn").addEventListener("click", myheader.changeColor);

自分で試してみる(開発準備中) »

関数を操作するときはこれらの違いを覚えておいてください。通常の関数の動作が必要な場合もありますが、そうでない場合はアロー関数を使用してください。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細