DeLLa.JS な日記 #4

フォクすけ.JPEG

7/5 にDeLLa.JS と Firefox3 の記念パーティーに参加してきた。


お菓子美味しかったです。(〃▽〃)
帰りに余ったコアラのマーチも貰っちゃったし、元取れた(ノ´∀`*)
しかも、お菓子の直ぐ隣の席だからお菓子食べ放題━━━━Σ(〃▽〃 )━━━━!!

で、
DeLLa.JS の勉強会はP138から、主にクロージャについてです。
Callオブジェクトがどうのこうのとか・・
ブレークポイントの例とかきもいよね。みたいな・・


そしてその後、ついに9章突入です。
はい、JavaScriptクロージャと並んで最もきもいところですね。

その中でも特に議論されていたのが、コンストラクタの戻り値
(return で何かを返す場合、返した値(型)で動作が変わる。)
てか、自分がしつこくネタを振ってただけかも(〃 ̄ー ̄〃)

普通はコンストラクタでは return なんてしない!
だから気づかなかったが、JavaScriptはかなりきもい動作をする。


以下に例を示す。



// Hoge クラスはプリミティブ型(boolean)を返す。
function Hoge(x, y) {
this.x = x;
this.y = y;
// クラス名を設定
this.className = "Hoge";
// toString を上書き
this.toString = toString;
// コンストラクタだが、falseを返す。
return false;
}
Hoge.prototype.toString = toString;

// Foo は Hogeインスタンスを返す。
function Foo(x, y) {
this.x = x;
this.y = y;
// クラス名を設定
this.className = "Foo";
// toString を上書き
this.toString = toString;
// コンストラクタだが、Hogeインスタンスを返す。
return new Hoge("くま?", "くまん?");
}

// mixIn 用のtoString
function toString() {
return this.className + " { x : " + this.x + ", " + "y : " + this.y + " }";
}

// インスタンス
var hoge = new Hoge("X", "Y");
var foo = new Foo("XX", "YY");

var BR = "\r\n";

// 表示してみる
alert([
"hoge : ", hoge,
// > Hoge { x : X, y : Y }

BR,
"foo : ", foo,
// > Hoge { x : くま?, y : くまん? }

BR,
"hoge instanceof Hoge ===> ",
hoge instanceof Hoge,
// > true
// new して、プリミティブ型の値を返した時は普通の動作。

BR,
"foo instanceof Foo ===> ",
foo instanceof Foo,
// > false
// Foo をnew したのに Foo じゃない!?

BR,
"foo instanceof Hoge ===> ",
foo instanceof Hoge,
// > true
// 実は Foo のインスタンスHoge だった!?

BR,
"Hoge() ===> ",
Hoge(),
// 関数として呼び出せば、false が帰ってくる。
].join(""));




つまり、コンストラクタの中で return するなと・・
return this なら大丈夫だけど。


そしてその後は、Firefox3の記念パーティー
とまとん、ダウンロードイベントで貢献しちゃったもんねっ(*ノノ)


なんかやたらテンション高くて店員さんにクレーム貰ってる変なおっさんがいたけどきにしない・・・
奥さんも一緒に来てたけど、奥さん大変そうねぇとか思ったり思わなかったり。


そして、Firefox3のシールやらノートやらマグネットやら色々貰いました。
今日はもじら組の組長さんがわざわざ東京からきてた。
うん、組長っぽかった。


さらに、フォクすけのぬいぐるみ争奪戦。
まぁ、ただのじゃんけんだけど・・
残念ながらとまとんは手に入れることが出来なかったけど、同じ会社の同僚が一発で勝ち取ってた。
ありえないと思った。
20人くらいいたのに・・・


きっと来週からは毎日、社内でフォクすけぬいぐるみと対面することが出来るでしょう。
フォクすけキュン・・・(〃▽〃)

あれ・・・
フォクすけ!?
つД`)・゚・。・゚゚・*:.。..。.:*・゚



Firefox ブラウザ無料ダウンロード