#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です!