Ad Network

Sponsored Links


あわせて読みたい

  • あわせて読みたい

« 「au向けのiPhoneは作ってはいけない」という契約になっている(らしい) | Main | ナノチューブ・ラジオの動作原理 »

Javascriptの「this」は日本語の「僕」みたいなものだ、と言ってみるテスト

 先日のエントリーで、Javascriptのthisについてブツブツと言ってみたところ、なかなか良いトラックバックが返って来たので紹介。 

setInterval(this.callback, 33)がうまく動かない理由

 コメント欄でも少し会話を続けたのだが、こんな「ゆるい」コミュニケーションがとても心地良い今日このごろ。

 ◇ ◇ ◇

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

 太郎「僕はPerlが好き」         // この「僕」は、
 次郎「僕はやっぱりPHPだよ」        // この「僕」とも違うし
 太郎「三郎だったら『僕は絶対Ruby』と言うに決まってるよ」 // この「僕」とも違う

 ただし気をつけなければいけないのは、太郎が次郎に向かって、

「三郎に会ったら『僕に電話して』って伝えといて」

と言った場合、日本語なら「僕=太郎」なことは自明だが、Javascriptのインタープリタは「僕=次郎」と解釈してしまうこと。そのあいまいさを避けるためには、

「三郎に会ったら『太郎が「僕に電話して」って言っていたよ』って伝えといて」

と言う必要がある。

 かえって混乱しちゃうかな?

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341c4f9853ef00e54f7e20258833

Listed below are links to weblogs that reference Javascriptの「this」は日本語の「僕」みたいなものだ、と言ってみるテスト:

» 太郎でも次郎でもない from にゃにゃん.と
そっちかー。 Javascriptの「this」は日本語の「僕」みたいなものだ、と言ってみるテスト ianimeの興味より this ポインタの方が気になられてるらしい。 Javaやってたら結構有る話で傍観モード... [Read More]

» [javascript] JavaScriptのthis from Sogolosphere Log
長く風邪ひいてました。。。 復活したところで、(寝すぎて寝れないので)うろうろと記事よんでいたら、 Life is beautiful: Javascriptの「this」は日本語の「僕」みたいなものだ、と言ってみるテスト という愉快な話題を発見。 太郎が次郎に向かって、 「三郎に会ったら『... [Read More]

» Javascriptの世界と今僕たちが生きている日本は、ちょっと違うんだよ from hatestのmemo
Satoshiさんのたとえ話を、Javascriptをホントにわからない人に話したら余計に混乱しそうだ。 ちなみに、thisの説明をするときに、「Javascriptのthisは日本語の「僕」みたいなもの」と言ってみるのはどうだろう。Life is beautiful:Javascriptの「this」は日本語の「僕」み... [Read More]

Comments

oyo

IT関係者ですが、
「省略して表現しても通じてしまう日本語ゆえの問題」だと思います。

>太郎「僕はPerlが好き」         // この「僕」は、
>次郎「僕はやっぱりPHPだよ」       // この「僕」とも違うし
>太郎「三郎だったら『僕は絶対Ruby』と言うに決まってるよ」 // この「僕」とも違う

勝手に言葉を足してみると、

太郎「僕はPerlが好き」 (そのまま)
次郎「僕はやっぱりPHP(が好き)だよ」
太郎「(僕が思うに、)三郎だったら『僕は絶対Ruby(が好き)』と言うに決まってるよ」

となって、1番目と2番目は「誰が何を好きという属性」を主観で述べている(事実)のに対し、3番目は「誰が何を好きという属性」を他人が述べている(事実ではない)。

と解釈すると、1番目と2番目の"僕"は同じだと思えるし、違う理由がわかりません。

て

To:oyo
この話は、"僕"という言葉が何を指してるのかを表しているのであって、事実かどうかは関係ないと思いますよ。

>太郎「僕はPerlが好き」         // この「僕」は、
>次郎「僕はやっぱりPHPだよ」       // この「僕」とも違うし
>太郎「三郎だったら『僕は絶対Ruby』と言うに決まってるよ」 // この「僕」とも違う
この場合、1番目の"僕"は太郎の事を指しているのに対して、
2番目の"僕"は次郎を、3番目の"僕"は三郎を指してるので、
両方とも1番目の"僕"とは違います。

Post a comment

If you have a TypeKey or TypePad account, please Sign In.