タツオチップス

最近は https://note.com/tatsuosakurai に書いてるかもです

#tkbjs #3 メモ

前回の続き。p.25 3.3 値の更新から

3.3 値の更新

var stooge = {};
stooge;

とかすると

[object Object]

って表示される。あまり気にしてなかったんだけど、

basyura
[object Object] は文字列表現で、toSource() を使うとさらに中身がみえるらしい
http://www.tohoho-web.com/js/object.htm

と教わった。今度から使おっと!

3.4 参照

x.nickname = 'Curly';

ってあるんだけど、もともと入ってる値と同じだから違う名前にした方がいいね。となった。

最後4行の参照から派生した話(2次会で詳しくやりました。)

var b = a = {};
a = {};
a.a = "a";
print(b.a); // undefined

undefined じゃなくて、"a" って出ることを期待しそうだけど、
a = {}; であたらしいオブジェクト作っちゃうことになるので undefined になると。

var nick = stooge.nickname;

↑文字列はプリミティブ型なのでコピーっぽい(オブジェクトは参照渡し)

JavaScriptのオブジェクト
JavaScriptには多く分けて2種類のオブジェクトがある。違いはオブジェクトを詰め込めるか詰め込めないか。数値や文字列は詰め込めないオブジェクトでプリミティブ。配列など詰め込めるオブジェクトはオブジェクトと呼ぶのがJavaScriptにおけるならわし

↑らしいっす。http://www.amazon.co.jp/exec/obidos/ASIN/4844323644 の p.9

3.5 プロトタイプ

azu
objというオブジェクトにもobj.methodというメソッドが定義、継承されている。
objのprototypeをたどった先にmethodがある、リンクしてる。みたいな感じかなー

これでなんとなくいろいろイメージがわいた気がする
まだいろいろフワフワしてるけどw

まとめ?

プロトタイプはやっぱり難しくって、この先もちょいちょい出てくるので、とりあえず理解はしきれてないけど次に行きましょうかねえ。

教訓
あんまり深く考えるとややこしくなるから気をつけようw
この本でしか滅多に見ない用語(訳)があるのであんまり縛られちゃダメw

次回は第4木曜の8/26です!