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 ブラウザ無料ダウンロード

DeLLa.JS 勉強会の成果

頑張ってJavaScriptのお勉強した。

頑張ったおかげでJavaScriptが前よりもっと分かるようになった気がする。

どのくらい分かってきたかって言うと・・




こんな感じかな?

// 一人目の左手クラス
function ヾ(face) {
// 右手(表示用プロパティ。これ以上先には繋がらない。)
this.ノ = "(〃▽〃)つ";

// 右手(「ィェィ」と「.」で繋がる。)
this.face = face;

// プロパティ「ノ゜」にクラス「ノ゜」をnew
this.ノ゜ = new ノ゜() ;

// toString を上書き。
// alert( new ヾ() ) のように、#toStrigが暗黙的に呼び出されることがある。
this.toString = toString;
}

// 二人目の左手クラス
function ゜ヾ(face) {

this.ノ = "(ノ´∀`*)";

this.face = face;

this.ノ゜ = new ノ゜();

this.toString = toString;
}

// 二人を結ぶ愛の言葉クラス
// クラス「ヾ」または「゜ヾ」のインスタンスを返すことで、双方を「.」で繋ぐ事ができる。
// クラス「ヾ」同士、クラス「゜ヾ」同士を繋ぐ事も可能。
function ィェィ() {
// クラス「ヾ」のインスタンスを返す。
this.ヾ = function() {
return new ヾ('・ω・');
};

// クラス「 ゜ヾ」のインスタンスを返す。
this.゜ヾ = function() {
return new ゜ヾ('・ω・');
};

this.toString = function() {
return "ィェィ";
};
}

// 右手クラス
function ノ゜() {
// プロパティ「ィェィ」にクラス「ィェィ」をnew
this.ィェィ = new ィェィ();

this.toString = function() {
return "ノ゜";
};

}

// 「ヾ」「゜ヾ」クラスのtoString を上書きするための関数
function toString() {
// 顔文字っぽいのが帰ってくる。
return "(´" + this.face + "`)";
}



// 「ヾ」クラスを new してみる。
var face1 = new ヾ('・ω・');

// 「ヾ」クラスを new してみる。
var face2 = new ゜ヾ('・ω・');

// 二人仲良く
var face3 = new ヾ('・ω・').ノ゜.ィェィ.゜ヾ('・ω・').ノ;

// 3人仲良く・・・
var face4 = new ヾ('・ω・').ノ゜.ィェィ.゜ヾ('・ω・').ノ゜.ィェィ.ヾ('・ω・').ノ;

// 改行コード
var BR = "\r\n";

// 表示してみる。
alert([
"fase1 : ", face1,
BR,
"face2 : " + face2,
BR,
BR,
"二人仲良く↓",
BR,
face3,
BR,
BR,
"三人仲良く↓",
BR,
face4
].join(""));

// 表示メッセージを一旦配列(Array)にバッファしてから、
// Array#join で区切り文字を""(区切り文字なし)で結合して1つの文字列にしている。

【出力結果】


勉強会とFirefox3記念パーティーの詳細は別の日記で後ほど・・・

自分がFirefox2の頃から使っていたアドオンでFirefox3に対応したものを色々紹介。



All-in-One Gestures 0.1.9.1
マウスジェスチャーが出来るアドオン。
これが対応するまで、FireGestures で代用してた。
(FireGesturesは結構早くから対応されてた。)
でも、いまいち使いにくいので使えるようになってよかった。

■All-in-One Sidebar 0.76
これがないとFirefox使う気になりません。

Firebug 1.2.0b3
最強のJavaScriptデバックツール!?
日本語版はまだ対応してないようだ。
バージョンからしてまだ開発版か?

IE Tab 1.5.2(めんどいので略)
IEエンジンに切り替えられる。
Firefox内にIEを表示させるような感じ。
これはFirefox3リリースとほぼ同時に使えた。

SQLite Manager 0.2.46
SQLite のクライアントツール。
これも最初の方から使えた。
これから、SQLiteがどんな使われ方されるか期待。

■Foxmarks 2.0.47.4
ブックマークの同期化ツール。
複数のパソコンでブックマークを共有できる。
これも対応が早かった。

Tab Mix Puls 0.3.6.1(ry
ごく一部の設定しか使ってないけど、ないと困る。
(多段表示と新しいタブを開いた時にHP表示させるくらい?)

■Html Validator 0.8.5.2
HTMLの妥当性検証ツール。

bbs2chreader 0.5pre2
2ch用アドオン。
Firefox2chブラウザとして使える。
ただし、開発版まだ開発版っぽい。

※バージョンは、Firefox3で対応しているアドオンの(現在の)最新バージョンです。

という具合です。
もう、自分の必要なアドオンは一通り揃ったかも。
しいて言えば、日本語対応くらいかな。

つまり、Firefox3 使えます!
かなり、使えますっ!!

Firefox2 からバージョンUPにためらっていた人。
そして、いまだにIEを使ってる か わ い そ う な 人

Firefox3 入れましょう!!

他にもFirefox3関連のアドオンの情報を知ってる人は教えなさいっ!

あと、調べてる最中にこんなの見つけた。
Firefox3の使用感、プラグインの状況等CommentsAdd Star

ここでも使えるアドオンの一覧が載ってる。
参考にしよう!

上記のサイトではTab Mix PlusがNGになってるけど、
開発版を直接拾ってこれば使えるよ!

この辺を参考に!
Firefox3にTab Mix Plusをインストール
Tab Mix Plus 0.3.6