はじめる! Squirrel 第7章 クラス その3

今日はコンストラクタから

  • コンストラクタはクラスのメンバ関数に constructor という名前で定義すればよい。引数を指定したらインスタンス化の時に引数を渡せる
    • ここのサンプルコードの説明に「デフォルト引数と関数を引数として渡すコードを含む例」とありますが関数を引数としては渡していないもよう
  • メンバ変数は外部から変更可能。メンバ関数は設定できない
  • delete 文でメンバ変数/関数は削除できない
  • instanceof 演算子
  • 継承はクラス定義に extends SuperClass で指定
    • Squirrel の継承は親クラスの定義が子クラスにコピーされ、その後子クラスの定義が評価されるというもの
    • オーバーライドした時に親クラスのメンバ関数を呼び出すのは SuperClass . foo() のような記法
    • で、案の定これは継承関係がなくても呼べます
  • 派生クラスから基底クラスは parent というキーワードでアクセスできる。これはクラスを参照するので、それに "." をつけてメンバ関数を呼んだり "()" をつけてインスタンス化したりできる
  • クラスやそのインスタンスに対して in 演算子を使うと、メンバ変数やメンバ関数の存在チェックができる "attr" in C や "attr" in c で "attr" という名前のメンバがある時真になる

これで第7章は終了です。