"my"

以前から気になっていた『Javascript: Good Parts』に出てくる”my”についてよく説明してくれてるブログを発見。→ http://d.hatena.ne.jp/t_gaisho/20100731/p2

<引用>
  • インスタンス生成時に必要な情報は引数specにフィールドとして格納して渡す
  • 外部からアクセスさせたくないフィールド、メソッド(但し継承側で利用する)に関してはmyオブジェクトに追加する
  • 外部からアクセス可能(public)な特権メソッド、フィールドに関してはthatプロパティのオブジェクトに追加していく
  • プライベート変数(継承後も利用しない)に関してはmyでもthatでもなく、独立した変数として定義する
  • 継承した側でメソッドをオーバーライドしたが、親のメソッドを呼び出す必要がある場合はsuperior()を定義し呼び出せるようにする必要がある

要は、"protected"みたいなものと理解する。そういうことじゃねえかなあ? と思っていたけど当時はよくわからなかった。親メンバの呼び出しとか、そこらへんがゴッチャになってる。
  1. 子オブジェクトが親オブジェクトのプロパティを使えるようにするためには、JavaやPHPではprotected変数にする。
  2. 子のほうで親のメンバをオーバーライドしたときに元々の親メンバを使用したい場合、PHPではparent::doといった形で呼び出していた。
以上のことはJavascriptでも可能だ、ということらしい。

0 件のコメント:

コメントを投稿