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

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

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

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

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

 ◇ ◇ ◇

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

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

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

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

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

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

と言う必要がある。

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

Comments

oyo

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

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

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

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

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

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

て

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

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

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)