20150802 - kyosen/javascript-ninja GitHub Wiki

第6章 プロトタイプによるオブジェクト指向

6.1 実体化とプロトタイプ

  • prototype以外からオブジェクトを複製することはできる?(辻)

    • デザインパターンの Prototype とは違うもの(伊藤)
  • var o = {}; の o は prototype プロパティを持っている?(辻)

    • もっていない
      • 図6-3 オブジェクトは constructor プロパティを持っていて、コンストラクタ関数が prototype プロパティを持っている
      • o は constructor プロパティを持っている。
  • 「掩蔽」は何と読む(井谷)

    • 「えんぺい」と読む。意味は「覆い隠すこと」
    • 原文では「occulude」。誤訳ではなさそう。
  • constructor プロパティを使えば、prototype 以外でオブジェクトを複製できないだろうか?(辻)

    • できない。constructor に入っているコンストラクタ関数でオブジェクトが生成される。
  • サブクラスが2つでスーパークラスが1つあるようなクラスベースの継承を表現する場合、どのようになるのか? リスト6-8 のように Ninja.prototype = new Person() をそれぞれのサブクラスのオブジェクトでやるのか?(乙村)

    • var p = new Person() という形でオブジェクトを生成し、サブクラスのオブジェクトの prototype に代入した方が近いものになる。(辻)
  • p152 一行目 call に undefined の値を渡す可能性を排除するためと記載されているが、undefinedがわたるとダメなのか?(伊藤)

6.2 落とし穴に注意!

6.3 クラスに似たコードを書く

6.4 まとめ