functon()の代わりにアロー関数は使えないのでしょうか?

アロー関数ではthisの意味が異なるので注意しましょう。
2020年11月18日
ユーザー

お世話になります。
ソースコード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の関係がどうなっているのかと、この場合にアロー関数を用いた書き方ができるならその書き方を質問させてください。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(6)