【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
お世話になります。 ソースコード8‐10行目のposts[0]のshowについて、 show: function() { console.log(`${this.text} - ${this.likeCount}いいね`); }; の部分を、アロー関数で書こうとし、次のようにしてみました。 show: () => { console.log(`${this.text} - ${this.likeCount}いいね`); }; そのうえで、 posts[0].show(); で実行したのですが、コンソールには、 undefined - undefinedいいね! と出てきて、post[0]のtextやlikeCountと紐づかないようです。 function() {}と、() => {} は同じように使えると理解していたのですが、そうではないのでしょうか。 上記のように、 show: () => { console.log(`${this.text} - ${this.likeCount}いいね`); }; とした場合のthisの関係がどうなっているのかと、この場合にアロー関数を用いた書き方ができるならその書き方を質問させてください。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
お世話になります。
ソースコード8‐10行目のposts[0]のshowについて、
show: function() {
console.log(`${this.text} - ${this.likeCount}いいね`);
};
の部分を、アロー関数で書こうとし、次のようにしてみました。
show: () => {
console.log(`${this.text} - ${this.likeCount}いいね`);
};
そのうえで、
posts[0].show();
で実行したのですが、コンソールには、
undefined - undefinedいいね!
と出てきて、post[0]のtextやlikeCountと紐づかないようです。
function() {}と、() => {} は同じように使えると理解していたのですが、そうではないのでしょうか。
上記のように、
show: () => {
console.log(`${this.text} - ${this.likeCount}いいね`);
};
とした場合のthisの関係がどうなっているのかと、この場合にアロー関数を用いた書き方ができるならその書き方を質問させてください。