質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4705閲覧

constとfunctionの違いについて

tojima

総合スコア16

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/05/06 12:12

callback関数について勉強している際に、気になったことがあったので、質問させていただきます。

Javascript

1const tester = () => { 2 console.log('hoge'); 3} 4 5function tester2() { 6 console.log('new hoge'); 7} 8 9tester(); // hoge 10tester2(); // new hoge

この2つはどのようにちがうのでしょうか?callback関数で下のようにしました。

Javascript

1function greeting(a, b) { 2 console.log(a + ' ' + b); 3} 4 5const tester = (callback) => { 6 callback(arguments[1], arguments[2]) 7} 8 9tester(greeting, 'Good', 'morning');

するとcallback undefined undefinedとコンソールに表示させます。

自分の基礎の認識がちゃんとできていないことが原因と思いますので、教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

アロー関数はargumentsを持たないので、2つ目のコードは下記のように書き換えれば動きます。

js

1function greeting(a, b) { 2 console.log(a + ' ' + b); 3} 4 5const tester = (callback,...arg) => { 6 callback(arg[0], arg[1]) 7} 8 9tester(greeting, 'Good', 'morning'); 10 11```**動くサンプル:**[https://jsfiddle.net/Lwsh2vrz/](https://jsfiddle.net/Lwsh2vrz/) 12 13--- 14 15constfunction」ではなく、「アロー関数とfunction」の違いを調べてみてください。 16 17【アロー関数 - JavaScript | MDN18[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_binding_of_arguments](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_binding_of_arguments) 19 20【アロー関数は this も arguments も持たない - Qiita】 21[https://qiita.com/pom510/items/4f92266d9c5a22eb6bc4#違いその2----アロー関数は-arguments-を持ちません](https://qiita.com/pom510/items/4f92266d9c5a22eb6bc4#%E9%81%95%E3%81%84%E3%81%9D%E3%81%AE%EF%BC%92----%E3%82%A2%E3%83%AD%E3%83%BC%E9%96%A2%E6%95%B0%E3%81%AF-arguments-%E3%82%92%E6%8C%81%E3%81%A1%E3%81%BE%E3%81%9B%E3%82%93)

投稿2019/05/06 12:22

kei344

総合スコア69366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tojima

2019/05/06 23:23

回答ありがとうございます。ちなみに..argはスプレッド構文という名前と調べてから知りましたが、これはtester関数の'Good' 'morning'これらを配列と置き換えているのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問