読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

Javascriptのthisと僕の可愛い妹

久しぶりにJSいじってて、やるうちに文法とか制御構文とかIEに対する怒りとか色々思い出してきて、特にthisとか大事だと思ったので覚書。


thisって最初やったときは超鬼門だった。this使ってオブジェクト参照してたら全く違うもの参照しててデバッグに滅茶苦茶苦労したり。文脈によって中身が全く違う。訳わかんない。超八方美人。僕の妹みたい。今日ある男を家に連れ込んできたと思ったら、次の日は全く違う男と歩いてやがる。普段は僕のことなんかキモイとか言ってゴキブリとかvimmerとかと同等に扱って邪険にするくせに、たまにやたらボディタッチとかしてきて異常に甘えてくるときがある。訳わかんない。
でも、Javascriptのthisにしても、僕の妹にしても、その何かになびくポリシーさえ分かれば扱いは簡単だった。


thisってのはつまるところ、それの関数がどのオブジェクトのプロパティとして呼び出されたのかによって中身が違ってくる。

例えばグローバルスコープの中で以下のような関数を定義する。

function testThis(){
  alert(this);
}

testThis();


こいつを呼び出すと、FFではalertで「Object Window」と表示される。これは関数をグローバルスコープ中で定義したため、このtestThisという関数はグローバルオブジェクト(windowオブジェクト)のプロパティとして扱われていたから。


次にtestThisをあるオブジェクトのメソッドとして扱った場合。

function testThis(){
  alert(this);
}

var obj = new Object();
obj.test = testThis;
obj.test();

このとき、alertでは「Object Object」と返ってくる。testThisはobjオブジェクトのプロパティとして扱われてるから。


ここまでは普通に分かると思うんだけど、以下で僕は少しはまった。

function testObj(){
  this.testThis = function(){
    testThis2();
  }
  function testThis2(){
    alert(this);
  }
}

var obj = new testObj();
obj.testThis();

この場合、alertをすると、「Object Window」が出てくる。testThis2はtestObjのプロパティではないということ。
当然といえば当然なんだけど、testThis2はtestObjのメソッドとして宣言されてるわけではないので、testObjのメソッドではない。
thisには常に何らかのオブジェクトがバインドされているため、testThis2の中のthisはグローバルオブジェクトを参照している。
thisがnullになることはなくて何かしらのオブジェクトと繋がってるってのがすごい重要。



思えば僕より先に生まれた従兄弟たちはみんな男で、僕ももちろん男、若い親族の中で「女の子」と呼べるのは確かに僕の妹だけだった。僕らの幼いころ、年末年始やお盆などの親戚が一同に会する席では、みんなよほど甥よりも姪という存在が欲しかったのか、妹ばかりがやたらチヤホヤされていた。僕はその光景を見てだいぶ不貞腐れていた記憶がある。とにかく両親含めてみんなが妹のことを猫っ可愛がりしたものだった。
やっぱり僕にとってももちろん妹は可愛くて大切な存在で、小さいころは何をするにも妹と一緒だった。お風呂に入るとき、僕が友達の家に行くとき、僕が初めて母におつかいを頼まれたとき。いつも僕の側には妹がいた。


甘やかし過ぎだろう、と言われればそれまでだし、そんなことは分かっている。でも、妹にとってはそれが普通だった。彼女の瞳から見渡すことのできる世界には、いつも誰か自分の頼れる人間の姿が近くにあった。
自分にとって存在していて当然なものを失ったら、誰だって悲しくなるだろう。不安になるだろう。その「存在していて当然」であるものが、妹にとっては「近くにいる頼れる誰か」であったというだけ。


僕が小学校へ入学して初めての登校日、妹が猛烈に泣き叫んでいたことをよく覚えている。僕と妹が保育園に入ったのはほぼ同時で、妹が園内を見渡せば確実に僕の姿が見えたはずだ。彼女の視界の中には、常に僕の姿があった。
僕が日中小学校へ行っている間は、存在していて当然たる僕の姿が見えなくなる。その日妹は保育園で、お母さんと別れてぐずる年少の子たちに混ざって、僕の写真を抱えながら泣いていたらしい。


妹も小学校、中学校、そして高校へ進学し、自分を取り巻く環境が劇的に変わる体験をする。彼女の瞳から見渡すことのできる世界も幼少のころとは比べ物にならないほど、次第に広大に、鮮明に、複雑になっていく。その大きな世界の中で、親友や恋人を、視界の中にあるべき僕ら家族に代わる「頼れる誰か」を探し、深い繋がりを求めていたのだろう。


今年の春、妹は実家から通っていた大学を卒業し、東京の企業へ就職する。初めての一人暮らし。社会人となること。彼女を取り巻く環境は、さらに大きく変化するだろう。どんな困難に見舞われるかも分からない。どんな辛く寂しい想いをするかも分からない。
正月に実家に帰って妹と少し話したとき、春からの新生活についてどう思っているか聞いてみた。大変だろうけど東京ならお兄ちゃんがいるからね、と不安そうな顔つきながらも甘えるような笑みを浮かべる。再び僕が彼女の視界の中に立たなきゃいけなくなったようだ。


こんなことを友達に話すと、ほとんど誰もがそんな面倒な妹がいるの?と聞いてくる。もちろんいません。いるのは弟(警備員アルバイト、マジで6年ほど口きいてない)だけです。上記のような可愛い女性、いらっしゃったら連絡ください。あと友達もいません。死にたい。