1. 矢印関数の使用ES6 では、矢印 この記事の後半では、アロー関数と通常の関数の機能上の違いについて紹介します。 1. 通常関数から矢印関数へ以下に示すように、関数を定義するには、 関数 getSum(a, b) { a + b を返します。 } この関数を定義するために矢印関数を使用する場合は、 定数 getSum = (a, b) => { a + b を返します。 }; 2. 中括弧を省略してリターンする矢印関数を定義し、関数本体に 以下に示すように、矢印関数の完全な定義は次のとおりです。 定数 getSum = (a, b) => { a + b を返します。 }; この矢印関数の本体には 定数 getSum = (a, b) => a + b; 3. 括弧を省略する定義された矢印関数にパラメータが 1 つしかない場合は、括弧を省略できます。 以下に示すように、定義された矢印関数には 1 つのパラメーターのみがあり、完全に記述されています。 定数関数 = (a) => { a + 2 を返します。 }; パラメータを囲む括弧は省略されており、次のコードは上記のコードと同等です。 定数関数 = a => a + 2; 注: 関数にパラメータがない場合、または複数のパラメータがある場合は、括弧を使用する必要があります。 2. アロー関数と通常の関数の違いほとんどの場合、矢印関数はより簡潔であるため、通常の関数を使用できる場所であればどこでも使用できます。 しかし、場合によっては、矢印関数は通常の関数とは大きく異なります。 1. 矢印関数の this は親スコープの this である次のコードは、通常の関数として定義されたメソッド 定数オブジェクト = { 名前: 'ジャック', getThis() { console.log(これを); }, }; obj.getThis(); // {name: 'Jack', getThis: ƒ} 同様に、オブジェクト 定数オブジェクト = { 名前: 'ジャック', getThis: () => { console.log(これを); }, }; obj.getThis(); // ウィンドウ 2. call、apply、bindは矢印関数のthisを変更できない次のコードでは、通常の関数 定数オブジェクト = { 名前: 'ジャック', }; 関数 getName() { コンソールにログ出力します。 } getName.call(obj); // ジャック 関数が矢印関数に変更されると、 定数オブジェクト = { 名前: 'ジャック', }; 定数 getName = () => { コンソールにログ出力します。 }; getName.call(obj); // 未定義 3. コンストラクタとして使用できない矢印関数はコンストラクターとして使用できません。矢印関数をコンストラクターとして使用すると、次のコードに示すようにエラーが報告されます。 定数Person = () => { this.name = 'ジャック'; }; const usr = new Person(); // Personはコンストラクタではありません 4. 議論はしない通常の関数内では、 関数func() { console.log(引数); } func(1, 2, 3); // [引数] { '0': 1, '1': 2, '2': 3 } ただし、矢印関数では ブラウザでは、矢印関数で 定数関数 = () => { // ブラウザ環境 console.log(arguments); // 引数が定義されていません }; 関数(1, 2, 3); ただし、矢印関数は、入力パラメータをパラメータ内の 定数関数 = (...引数) => { console.log(引数); // [ 1, 2, 3 ] }; 関数(1, 2, 3); 5. 矢印関数はnew.targetをサポートしていない通常の関数定義のコンストラクター内では、インスタンスを構築するコンストラクターを返すために 関数Person() { this.name = 'ジャック'; コンソールにログ出力します。 } // コンストラクタを指します new Person(); // [関数: Person] 矢印関数では、 定数Person = () => { this.name = 'ジャック'; コンソールにログ出力します。 } // ブラウザ環境 new Person(); // ここでは new.target 式は許可されません
以上で、JavaScript のアロー関数の特徴と通常の関数との違いについての説明は終了です。js アロー関数と通常の関数についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQL テーブルとデータベースでデータを分割する方法
Vue コンポーネントは接続されているため、コンポーネント間で値を渡す必要があるのは避けられません...
DOMとは何ですか? JavaScript を使用すると、HTML ドキュメント全体を再構築できます...
圧縮アップロード画像、スクラッチカード、ポスター作成、チャートプラグインなど、フロントエンド開発にお...
目次1. 使用方法2. 出力結果1.id 2.選択タイプ3.表4.パーティション5.タイプ6.可能な...
fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...
Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...
フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...
Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...
序文最近、フロントエンドの知識をまとめており、いくつかのインタビューにも参加しました。インタビュー中...
目次PagodaをインストールするPythonランタイム環境を構成するPythonをインストールする...
目次概要プロミスレースメソッド約束の再パッケージ化中止コントローラAxiosプラグインにはキャンセル...
rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...
ssh-secure シェルは、安全なリモート ログインを提供します。組み込みシステムを開発し、Li...
目次メモリプールの概要1. nginxデータ構造2. nginxはOSからスペースngx_creat...
MySQL では lastIndexOf に似た関数を使用する必要がある場合もありますが、すぐに使用...