JavaScript第5版(177p〜198p)

そろそろ半分かと思ったら1/3もいってなかった。。。

JavaScript 第5版

JavaScript 第5版

9.7.1 instanceof演算子とコンストラクタ(p177)

9.7.2 Object.toString()メソッドによる型判定(p178)

function MyObject(){}

var obj = new MyObject();
console.log(obj instanceof MyObject); // true
console.log(obj.toString()); // [object Object]
console.log(typeof obj); // object

var arr = ['a'];
console.log(arr.toString()); // a
console.log(typeof arr); // object
console.log(arr.constructor.name); // Array

ふーん。toString()でconstructorの名前くらい返してくれてもいいのにと思ってしまう。

console.log(obj.constructor.name); // MyObject

ほら、取得できるじゃん?

Object.prototype.toString = function() {
  return '[' + typeof this + ' ' + this.constructor.name + ']';
}
function MyObject(){}

console.log(new Object().toString()); // [object Object]
console.log(new MyObject().toString()); // [object MyObject]

自己満足♪

9.7.3 ダックタイピング(p179)

Javaのinterfaceになれているので、どうしてもひっかかってしまう。
ヒルのように歩いて、アヒルのようにガーガー鳴いていたとしても、もしかすると。。。
でもこれを乗り越えなければ、LLは制覇できない!!

10 モジュールと名前空間(p189)

最近$関数の奪い合いが発生している気がするのは私だけ?

10.1 モジュールと名前空間の生成(p192)

そういえばvarは後ろで使用されていても、コンパイル時に最初に実行される。
if文でvarはネストされないというのがあったはず。
ということは

var com;
if(!com) com = {};

こんなことやらないで、

if(!com) var com = {};

これでいいじゃん!

それにしてもJavaのパッケージ命名規則を使おうとするとこうなってしまうのか。
ファイル名とディレクトリで重複をなくすというのはおもしろい!
ってか、Javaもそうじゃん・・・

10.1.3 モジュール初期化コード(p194)

匿名関数を即実行か。
確かに安全だ。今度からそうしてみよう。

10.2 名前空間からのシンボルのインポート(p195)

var selfね

10.2.1 パブリックシンボルとプライベートシンボル(p197)

_counterか。クロージャじゃなくてこうしろってことね。
これなら楽ちんだ

あー、日付かわっちゃったー