Javascriptの世界と今僕たちが生きている日本は、ちょっと違うんだよ

Satoshiさんのたとえ話を、Javascriptをホントにわからない人に話したら余計に混乱しそうだ。

ちなみに、thisの説明をするときに、「Javascriptのthisは日本語の「僕」みたいなもの」と言ってみるのはどうだろう。

ん〜。どうでしょう(長島茂雄風に)
僕なら、住んでる世界が違うんだよって教えてあげる。


日本では「僕」は、発言を聞いたときに発言を聞いた人が、該当する人へと置き換えてくれるよね。
たとえば、太郎が次郎に向かって「三郎に会ったら『僕に電話して』って伝えといて」と言うと、
次郎が僕=太郎に置き換えてくれる。(「太郎に電話して」に変化)
だから、次郎が三郎に会ったときは「太郎に電話して」と言うんだ。


でも、Javascriptの世界では「僕」(=this)は、実際に動作をするときにしか置き換えないんだ。
Javascriptの世界で、太郎が次郎に向かって「三郎に会ったら『僕に電話して』って伝えといて」と言うと、
次郎は三郎に、そのまま「僕に電話して」って伝えるんだよ。
ここで、「僕に電話して」を聞いた三郎も、聞いた時点では僕を置き換えないもんだから、
いざ三郎が電話する時に(僕=三郎になって)自分に電話しちゃうことになる。


ね、違うでしょ。
だから、外国の人と接している気分でjavascriptコーディングしてあげてください。
異文化交流では、自分の文化と相手の文化の違いを見つめることが深い交流に繋がるから。