プロトタイプ
プロトタイプはJavaScriptにおける中核的な機能で、プロパティの継承の役割を担うってことはわかってるんだけど、細かいこと分かんない>_<
いろいろ試して、少しずつ理解を積み上げていく!
Circle = function(){}; Circle.PI = 3.14; var c = new Circle(); console.log(c.PI); // undefined console.log(Circle.PI); // 3.14
関数(オブジェクト)のプロパティは継承されてない。では、これならどうか?
Circle = function(){}; Circle.prototype.PI = 3.14; var c = new Circle(); console.log(c.PI); // 3.14
継承できた!
実際にはプロパティをコピーしてるわけではなく、実行時にCircleオブジェクトのプロトタイプから読み出すというのがポイント。
Circle = function(){}; Circle.prototype.PI = 3.14; var c = new Circle(); console.log(c.PI); Circle.prototype.PI = 3.1415; console.log(c.PI);
じゃあ、継承をネストするにはどうしたらいいんだろう?というところで詰まってしまった。。。The Good Partsを読むことにする!