2013年8月10日土曜日

オブジェクト指向JavaScript・・・を勉強してみる①

お久しぶりです。ヘッポコです。

8月に入ってしまい、夏なのか梅雨の再来なのかよくわからない気候が続きましたが、ここ最近は非常に・・・暑い。THE夏。
とりあえず元気にやれてます。


さて、今回は JavaScriptでオブジェクト指向を扱う場合の話。
実はヘッポコも勉強している身なので、少しずつ分けて書いていきます。

そもそもオブジェクト指向って?という状態の人は、説明を聞く前に何かしらの言語でオブジェクト指向にいきなり触れて実感した方がいいと思います。
オブジェクト指向を説明するのに、その概念が難しくとても話て伝わるものではないと思います。
逆に概念が全てと思ってもいいかもしれません。それさえ分かってしまえば言語別の実装も、あまり抵抗なく吸収できると思います。

ヘッポコは勉強中ですが、ヘッポコの会社の人達はJavaScriptなんて動けばいい程度に考えている人が多いです。WEB開発をゴリゴリやってない限りそれでいいのかもしれませんが。
基本的な所はおさえておくと何かあった時に役立つだろうと思います。

と言う事でまずはいきなりサンプルから。

  
// プロパティにセットx,yをセット
function Point(x, y){
    this.x = x;
    this.y = y;
  }
  // Pointのメソッド 
  // var Point = function(){ /*  */ };と書いてもよい
  Point.prototype.length = function(){
    return Math.sqrt(this.x * this.x + this.y * this.y);
  };
  // インスタンス化
  var point1 = new Point(3, 4);
  // lengthメソッド実行結果をログ出力
  console.log(point1.length()); // 5


単純なサンプルですが、複雑に作る場合も記述順序は同じだと思います。
最初にクラスなる部分の定義をして、各クラスのメソッドを定義して、最後にメイン処理に入ってオブジェクト生成などが流れていく。

ややこしくなってくるのが、サンプルの例でいうと、「Point.prototype = new 基底クラス」などprototypeに基底クラスを代入したりすると・・・まぁつまりはそういう使い方をしたい時が出てくる程構造化したい時はcallやapplyなども登場してきて難しくなってきます。 そのあたりを今後も勉強という形で残していきたいと思います。 しっかりと作れば、中身が複雑で理解できなくてもそれを使う側は、”なんとなく”という感覚的な所で上手く使えるようになってくるでしょう。これはjavascritpやプログラミングに関わらず、あらゆる事で言えると思いますが。 という事で、今日はここまで。

0 件のコメント:

コメントを投稿