SlideShare a Scribd company logo
1 of 38
Download to read offline
1.JavaScriptでオブジェクト指向す。




どっかエライ人に突っ込まれても俺は恐れない!
2.まず、プロトタイプベースってなんやねん!


  プロトタイプベースってなんなのさ?

一言でいってしまうと、既にインスタンスとして

利用できる状態のものをベース(プロトタイプ)

     として用意してそいつに、

  背びれ・尾びれをつけていくこと。

        継承というより

まさに、【extend】拡張していくという言葉が

     ぴったしジャマイカ!!
3.では、まずベースのインスタンスを用意しまっしょい!


    JavaScriptでオブジェクトを作るには?

       一番簡単なオブジェクトは

           var obj = { };



             ↑これ。



         ・・・・・・・・。
4.JavaScriptのオブジェクトは、他言語でいう連想配列


        Javascriptでは、連想配列を

   var arrayObj = { obire : 尾びれだよ。 };

              と記述できる。

    これをオブジェクトリテラルと呼ぶよ。

      実は、これがオブジェクトになる。

        これをオブジェクト指向的に

            アクセスするには、

       console.log(arrayObj. obire );

          と書くことができるよ。
5.ドット演算子でも配列的にでもアクセスすることもできる。


       console.log(arrayObj. obire );

     ↑の様にアクセスすることができれば

   また、以下の様にアクセスすることもできる。

      console.log(arrayObj[ obire ]);

      ↑おなじみ連想配列的アクセス。

  この、オブジェクトであり連想配列でもあるという

      点は、javascriptの言語仕様なので

     そうなんだとおぼえるしかないちょ。
6.ベースのインスタンスができたよ。
 これに、尾びれ・背びれを色々つけたしていくよ。

  javascriptで尾びれ・背びれをつけていくには

  ベースオブジェクトが必要。これは用意済み。

    じゃあ、尾びれの付け方をみてみるよ。

      var MainClass = function (){ };

これは、javascriptで非常にベターなユーザー定義関数の

    定義方法、これを関数リテラルと呼ぶよ。

?オブジェクトに尾びれをつける(拡張する)のになぜ

          関数を定義するんだい?
7.オブジェクトの拡張(継承)には関数が必須条件。


javascriptでオブジェクトを拡張するには、基本は

    ユーザーな定義関数が必要だよ。

  ユーザーな定義関数が尾びれをつけるための

       橋渡しをしてくれる。

 といっても、普通の関数の使い方はしないよ。

     関数コンストラクタ・・・・・

   つまりカンストラクタを使うんだ!!

    と言ってもそんな違いはないよ。

 このカンストラクタは、1000_VICKYの造語。
8.とりあえずカンストラクタを使って拡張してみよう。
       var MainClass = function (){

       console.log( コンストラクタ );

                 };

       まず、カンストラクタを作る。

カンストラクタそのものは基本はユーザー定義関数と

           同じ定義方法だよ。

    ただreturnで値を返してはいけないよ。

 そして、ここでMainClassという変数に無名関数が

   代入されているわけだけど、javascriptだと

       関数はオブジェクトなんだよね。

         そう。関数オブジェクト。
9.関数オブジェクト?関数がオブジェクト?


     関数はオブジェクトなんだよ。だからね、

  MainClass.addProperty = プロパティの動的追加 ;

↑こんなことが出来る。これどういう動きをするのかというと

      console.log(MainClass.addProperty);

  ってすると「プロパティの動的追加」と出力される。

                   さらに、

                 MainClass();

    とすると、もちろん関数としても実行される。
10.関数オブジェクトは必ずprototypeプロパティを持つ。

       関数はオブジェクトと前述した。

   つまり、関数は一般的なオブジェクトと同一で

    プロパティを持つことができる。先に述べた

      addPropertyプロパティのように。

  その関数オブジェクトは必ず【prototype】という

       プロパティを持つ。絶対にね。

そう!ここで初めてプロトタイプベースのプロトタイプという

         キーワードが出現する。
11.関数はオブジェクトを拡張するための橋渡し。

少し前のページで僕は関数がオブジェクトを拡張するための

          橋渡しをしてくれると言った。

関数オブジェクトが必ず持っている【prototype】プロパティが

              まさにその橋渡し。

   ここに、ベースとなるオブジェクト・・・つまり

     プロトタイプオブジェクトを代入してやる。

  MainClass.prototype = { obire : 尾びれだよ。 };

                 としてやる。

   ここでベースとなるオブジェクトがセットされた。
12.中休み。ちょっとまとめるね。

①まず、ベースのオブジェクトをつくるよ。

var arrayObj = { obire : 尾びれだよ。 };

②関数がオブジェクト拡張の橋渡しをするよ。

     var MainClass = function()

  { console.log( コンストラクタ );         };

 ③prototypeプロパティをセットするよ。

   MainClass.prototype =arrayObj;

 とりあえずこの三点でオブジェクト拡張の

          準備はできたよ。
13.プロトタイプベースでもnewキーワードは存在する。

オブジェクトを拡張するのに関数を使う際にちょっと変わった

            使い方をするといった。

      そう、関数をコンストラクタとして使う。

        var subObj = new MainClass();

                    お?

 これはよくあるクラスベースのオブエジェクト生成方法だね。

この時【subObj】という変数には関数オブジェクトMainClassを

  通じて【arrayObj】というオブジェクトのプロパティを

      持ったオブジェクトの参照が代入される。
14.新たにできたオブジェクトは?

  新たに生成されたオブジェクト【subObj】は

プロトタイプのオブジェクト【arrayObj】を継承する。

                つまり

      console.log(subObj. obire );

 とアクセスすると【尾びれだよ】と出力される。

関数オブジェクトを通じてプロトタイプオブジェクトを

   元に拡張オブジェクトを生成できたわけだ。

       ・・・・・・・・・・・・

           拡張してなくね?
15.javascriptは動的だからいつでも拡張できる。

  新たに生成されたオブジェクト【subObj】は

ただプロトタイプオブジェクト【arrayObj】をそのまま

  引き継いだだけで一切拡張が行われていない。

 が、javascriptは動的なのでいつでもプロパティを

          追加することができる。

 subObj.subProperty = 拡張後追加プロパティ ;

                等とすると

     console.log(subObj.subProperty);

     とすると追加した値を参照できる。
16.関数コンストラクタは実はオブジェクト初期化式

  とは言え、拡張後のオブジェクトに動的にプロパティを

追加していくのはちょっと手間なので、すこし効率を上げてみる。

         var MainClass =function (){

         this.sebire = 背びれだよ ;

       this.message = 大量だぜおい!!! ;

                     };

           とこんな風にしてみる。

  そう、関数コンストラクタはまさにコンストラクター。

     オブジェクトの初期化を行なってくれる。
17.もう一度、newしよう。

      var subObj = new MainClass();

    今度の【subObj】には元々のベースにある

プロトタイプオブジェクトと関数コンストラクタ内で記述した

     初期化の内容が反映されている。つまり

       console.log(subObj.sebire);

            //=> 背びれだよ

      console.log(subObj.message);

          //=> 大量だぜおい!!!

              が出力される。
18.拡張方法は、2通り。

  前頁より、特定のオブジェクトをベースに、

  拡張したオブジェクトを作成するためには

関数コンストラクタの中に初期化式として記述するか。

 あるいは、生成後のオブジェクトに直接動的に

 プロパティを追加してくか。の2通りが存在する。

 おそらく基本は前者、一般的なクラスベース見たく

拡張できるのでその方が、プロトタイプベースといえど

       扱いやすいと思う。

 そして、後者のように動的に追加したプロパティを
19.javascriptにおけるオーバーライド。

        javascriptでの継承において

    オーバーライドはどのような仕様なのか?

   先ほど、拡張したオブジェクト【subObj】の

 subObj.obire = あ!尾びれじゃねえ、エラだった ;

上記の様に代入する(オーバーライド)とするとどうなる?

        console.log(subObj.obire);

    //=> あ!尾びれじゃねえ、エラだった

             と出力される。

 が、継承元のオブジェクト・・つまり【arrayObj】は
20.継承もとのベースオブジェクトは読み出し専用。

         javascriptでの継承において

       オーバーライドは常に上書きされる。

  しかし、その場合ベースのプロトタイプオブジェクトは

 変更が反映されず、オーバーライドを行ったオブジェクト

そのものに、独自プロパティとして新たに同名のプロパティが

             追加される。

つまりこの場合、【subObj】には【obire】というプロパティが

       正確には2つ存在することになる。

【尾びれだよ】という値と【あ!尾びれじゃねえ、エラだった】
21.独自プロパティとプロトタイプオブジェクトのプロパティ。

  もし、独自プロパティと継承したprototypeプロパテイに

  同名のプロパティが存在するような状態になった場合、

     オブジェクトは独自プロパティを優先する。

 このような状態はおそらくプロパティをオーバライドした

 状態だろうが、このオーバライドな状態を解消したい場合

     javascriptでは【delete】演算子を用いる。

この場合、subObj.obireを元のプロトタイプオブジェクトの値に

                戻したい時は

           delete ( subObj.obire);
22.delete 演算子はオブジェクトのプロパティを削除する。

         delete ( subObj.obire);

という記述をしてやることで【subObj】の独自プロパティを

   削除することになり、結果【subObj.obire】は

当初のプロトタイプオブジェクトの値を参照するようになる。

            ただし、この場合

 継承元のプロトタイプオブジェクトから引き継いだものは

        削除することはできない。
23.総まとめだよ。
   ①javascriptのオブジェクトは連想配列と同義だよ。

     var arrayObj = { key_01 : value_01 };

         console.log(arrayObj.key_01);

        console.log(arrayObj[ key_01 ]);

         の二通りの参照方法があるよ。

②プロトタイプ継承を行うためにはベースのオブジェクトが必要。

そのためには、関数を関数コンストラクタとして用いることで

特定のオブジェクトを元に拡張オブジェクトを作成できるよ。

          var MainClass = function(){

      this.addProperty = 拡張プロパテイ ;
24.総まとめだよ。

   ③関数はオブジェクトだよ。関数オブジェクトは必ず

 prototypeプロパティを持つ。このprototypeオブジェクトに

          代入した任意のオブジェクトが

         ベースのオブジェクトになるよ。

        MainClass.prototype =arrayObj;

 ④new キーワードで新たな拡張オブジェクトを作成する。

         var subObj = new MainClass();

このオブジェクト【subObj】は、プロトタイプオブジェクトから

   継承した【key_01】とコンストラクタ内に記述した
25.関数オブジェクトのクラスは?

  以上、プロトタイプ継承をざっくりまとめたよ。

  ところで、僕は関数をオブジェクトだと言った。

    先ほど、subObjというオブジェジェクトが

MainClass関数というコンストラクタから生成されたように

  関数も、とあるコンストラクタから生成される。

              それが

     【Function】関数コンストラクタだよ。
26.Functionコンストラクタとは?

    その名の通り関数オブエジェクトを作るための

            関数コンストラクタ。

javascriptは内部的にこのFunctionコンストラクタを用いて

      関数定義を行なっていると思って良い。

                  例えば、

            function TestClass(){}

                     も

         var TestClass = function(){}

も内部でFunctionコンストラクタを呼んでいると思ってよい。
27.Functionコンストラクタをnewすることもできる。

 もちろんFunctionコンストラクタをnewすることによって

     関数オブジェクトを作ることができる。例えば。

var TestClass = new Function( a , b , console.log(a + b));

というようにこの場合、TestClassという関数オブジェクトが

                 生成されることになる。

・・・・・・・・・・・・Functionがnewできるということは

                Functionも関数なわけだ。

                  関数はオブジェクト。

       Function も関数・・・・・・・・・・・・?
28.Functionは関数オブジェクトだよ!

  Functionがコンストラクタとして呼べるということは

      Functionも関数オブジェクトなんだ!

・・・ん?でも関数オブジェクトってFunctionをnewした結果

     その返り値が関数オブジェクトなわけだろ?

           どうなってるんだ!?

と悩んでもしょうがない!Function関数は、関数オブジェクトを

 生成するが、Function関数そのものも関数オブジェクトだ。

    これは言語仕様としてそう理解するしかない。
29.Function関数のprototypeプロパティって。

前に、僕は関数オブジェクトは【prototype】というプロパティを

              必ず持つと述べた。

Function関数も例外なく【prototype】というプロパティを持つ。

   prototypeプロパティとはいったい何だっただろうか?

                   ↓

 そのprototypeプロパティを持つ関数コンストラクタによって

生成されるオブジェクトのベースとなるオブジェクトを代入する

             プロパティだったね。
30.Function関数のprototypeプロパティは関数オブジェクトのベース

       Function関数のprototypeプロパティは、一般の

      関数オブジェクトの元になるオブジェクトなんだ。

       つまり、Function.prototypeにプロパティを更に

     追加することによってその他の関数オブジェクトにも

              反映させることができるんだ。

                    例を見てみよう。

   Function . prototype . addProperty = 追加プロパティ ;

 var TestClass = function (){ console.log( コンストラクタ );};

                  と、したとしようか。
31.Function関数のprototypeプロパティは
            関数オブジェクトに反映される。
  Function . prototype . addProperty = 追加プロパティ ;

var TestClass = function (){ console.log( コンストラクタ );};

   関数オブジェクトはFunction.prototypeを継承するので

この場合、生成されたTestClassもaddPropertyプロパティを

            持つことになる。試してみよう。

          console.log(TestClass.addProperty);

                 // => 追加プロパティ

                    と出力される。
32.Function . A とFunction .prototype . Aは同一。

 ちょっと、ややこしいが関数オブジェクトはFunctionクラスの

              インスタンスだと言った。

 関数オブジェクトを生成する方法は複数あるがクラスベースで

  擬似的に考えた場合、Function関数をnewして生成された

関数オブジェクトはFunction . prototypeを継承することになる。

  これは例えば、MainClass関数をnewした場合、生成された

オブジェクトがMainClass.prototypeを継承することと同義だ。

   関数オブジェクトがFunction.prototypeを継承するなら

     Function関数そのものはどうなるのだろうか?
33.Function . A == Function .prototype . Aな関係。

たとえば、Function.prototype. A= A ;としたとする。

    この処理は関数オブジェクトに反映される。

つまりFunctionという関数オブジェクトにも反映される。

       console.log(Function.prototype.A);

      とすると【A】が出力される。さらに、

            console.log(Function.A);

          としても【A】が出力される。

   ちょっと自己参照な実装がされているようだ。

 Functionクラスのちょっと変わった一面だったね。
34.自分用最後の大まとめ。

①javascriptのオブジェクト生成は複数ある。

  ここではオブジェクトリテラルで生成してみよう。

  var arrayObj = { key01 : value01 , key02 : value02 }

  これが、これから作成するインスタンスの原型となる

  プロトタイプオブジェクトである。

②これを継承するクラスを作成する。

  var MainClass = function (){

      this.only = 独自プロパティ ;

  }
34.自分用最後の大まとめ。

③生成した関数オブジェクトにprototypeプロパティを指定する。

  関数オブジェクトは必ずprototypeプロパティを所持している。

  //先ほど作ったオブジェクトリテラルを代入する。

  MainClass.prototype = arrayObj;

④MainClassクラスのインスタンスを生成する。

  var subObj = new MainClass();

  //継承したプロパティ

  console.log(subObj.key01);

  console.log(subObj.key02);
34.自分用最後の大まとめ。

⑤もちろん独自プロパティも保持してる。

  console.log(subObj.only);

⑥そして、この時オブジェクトsubObjのプロトタイプオブジェクトは

  MainClass.prototypeであると言える。

⑦MainClassなどの関数オブジェクトは

  Functionクラスのインスタンスである。

  つまり、関数オブジェクトMainClassのプロトタイプオブジェクトは

  Function.prototypeであるといえる。
34.自分用最後の大まとめ。

⑧Function関数はFunctionクラスのインスタンスでもある。

  つまり、Function関数オブジェクトそのものの

  プロトタイプオブジェクトもFunction.prototypeであるといえる。

⑨Function.prototypeが保持するオブジェクトは

  Functionも保持する。つまり以下のような現象がおきる。

  Function . prototype . addProperty = Function追加 ;

  とすると

  console.log(Function . addProperty);

  //=> Function追加  が出力される。
34.自分用最後の大まとめ。

     終劇

More Related Content

What's hot

traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
大(中)規模Java script開発について
大(中)規模Java script開発について大(中)規模Java script開発について
大(中)規模Java script開発についてYuki Tanaka
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数Altech Takeno
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめYuki Ishikawa
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8y_taka_23
 
Javascript勉強会資料1
Javascript勉強会資料1Javascript勉強会資料1
Javascript勉強会資料1Kenji Kaneko
 
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったDatastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったMasahiro Wakame
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかHisashi Aruji
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
20120327 phpstudy58-phake
20120327 phpstudy58-phake20120327 phpstudy58-phake
20120327 phpstudy58-phakeKatsuhiro Ogawa
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)Nobuhiro Sue
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について豊明 尾古
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Yukiko Kato
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたSoichi Takamura
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...なおき きしだ
 
JavaのGenericsとは?
JavaのGenericsとは?JavaのGenericsとは?
JavaのGenericsとは?Kenji Nakamura
 

What's hot (20)

traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
大(中)規模Java script開発について
大(中)規模Java script開発について大(中)規模Java script開発について
大(中)規模Java script開発について
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
 
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
 
Javascript勉強会資料1
Javascript勉強会資料1Javascript勉強会資料1
Javascript勉強会資料1
 
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作ったDatastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
 
jQuery超入門編
jQuery超入門編jQuery超入門編
jQuery超入門編
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているか
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
20120327 phpstudy58-phake
20120327 phpstudy58-phake20120327 phpstudy58-phake
20120327 phpstudy58-phake
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
 
ちょっと詳しくJavaScript 第3回【prototype】
ちょっと詳しくJavaScript 第3回【prototype】ちょっと詳しくJavaScript 第3回【prototype】
ちょっと詳しくJavaScript 第3回【prototype】
 
JavaのGenericsとは?
JavaのGenericsとは?JavaのGenericsとは?
JavaのGenericsとは?
 

Viewers also liked

Telecommunications and its history.irvin rodas
Telecommunications and its history.irvin rodasTelecommunications and its history.irvin rodas
Telecommunications and its history.irvin rodasIrvinRodas
 
Intro les 4 government
Intro les 4 governmentIntro les 4 government
Intro les 4 governmentcothransteve
 
Casro Presentation Project And Change Management 1st June 2011
Casro Presentation   Project And Change Management 1st June 2011Casro Presentation   Project And Change Management 1st June 2011
Casro Presentation Project And Change Management 1st June 2011sam_inamdar
 
Crypttech LOG SIEM 2015
Crypttech LOG SIEM 2015Crypttech LOG SIEM 2015
Crypttech LOG SIEM 2015Mustafa Kuğu
 
Uwe conf spes_scott_carter_12-5-2011_publish
Uwe conf spes_scott_carter_12-5-2011_publishUwe conf spes_scott_carter_12-5-2011_publish
Uwe conf spes_scott_carter_12-5-2011_publishruralfringe
 
relu summary and abstract
relu summary and abstractrelu summary and abstract
relu summary and abstractruralfringe
 
Lab2 2 ubuntu-officeapplication
Lab2 2 ubuntu-officeapplicationLab2 2 ubuntu-officeapplication
Lab2 2 ubuntu-officeapplicationHaliuka Ganbold
 
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue Dolphin
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue DolphinSEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue Dolphin
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue DolphinCIM East of England
 
网站
网站网站
网站viigoo
 
Big Data & The Future of Making Things by Mike Haley
Big Data & The Future of Making Things by Mike HaleyBig Data & The Future of Making Things by Mike Haley
Big Data & The Future of Making Things by Mike HaleyGlobant
 
Darcey me and my friends book
Darcey me and my friends bookDarcey me and my friends book
Darcey me and my friends bookbowenslide
 
SolusiBisnisKita.com | Network Preview ABN
SolusiBisnisKita.com | Network Preview ABNSolusiBisnisKita.com | Network Preview ABN
SolusiBisnisKita.com | Network Preview ABNarisbudiman.com
 

Viewers also liked (20)

Telecommunications and its history.irvin rodas
Telecommunications and its history.irvin rodasTelecommunications and its history.irvin rodas
Telecommunications and its history.irvin rodas
 
Insp Butterfly
Insp ButterflyInsp Butterfly
Insp Butterfly
 
Intro les 4 government
Intro les 4 governmentIntro les 4 government
Intro les 4 government
 
Casro Presentation Project And Change Management 1st June 2011
Casro Presentation   Project And Change Management 1st June 2011Casro Presentation   Project And Change Management 1st June 2011
Casro Presentation Project And Change Management 1st June 2011
 
Buddhism
BuddhismBuddhism
Buddhism
 
Crypttech LOG SIEM 2015
Crypttech LOG SIEM 2015Crypttech LOG SIEM 2015
Crypttech LOG SIEM 2015
 
Uwe conf spes_scott_carter_12-5-2011_publish
Uwe conf spes_scott_carter_12-5-2011_publishUwe conf spes_scott_carter_12-5-2011_publish
Uwe conf spes_scott_carter_12-5-2011_publish
 
Francescserra
FrancescserraFrancescserra
Francescserra
 
relu summary and abstract
relu summary and abstractrelu summary and abstract
relu summary and abstract
 
Lab2 2 ubuntu-officeapplication
Lab2 2 ubuntu-officeapplicationLab2 2 ubuntu-officeapplication
Lab2 2 ubuntu-officeapplication
 
トラブル編
トラブル編トラブル編
トラブル編
 
Reasoning
ReasoningReasoning
Reasoning
 
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue Dolphin
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue DolphinSEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue Dolphin
SEO, CIM digital bootcamp, April 2013 - Andrew Goode, Blue Dolphin
 
Our cool japan
Our cool japanOur cool japan
Our cool japan
 
网站
网站网站
网站
 
Big Data & The Future of Making Things by Mike Haley
Big Data & The Future of Making Things by Mike HaleyBig Data & The Future of Making Things by Mike Haley
Big Data & The Future of Making Things by Mike Haley
 
Glb varshets-nasko
Glb varshets-naskoGlb varshets-nasko
Glb varshets-nasko
 
Darcey me and my friends book
Darcey me and my friends bookDarcey me and my friends book
Darcey me and my friends book
 
SolusiBisnisKita.com | Network Preview ABN
SolusiBisnisKita.com | Network Preview ABNSolusiBisnisKita.com | Network Preview ABN
SolusiBisnisKita.com | Network Preview ABN
 
My ten
My tenMy ten
My ten
 

Similar to Javascripでオブジェクト指向

BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2Atsushi Tadokoro
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門Katsumi Honda
 
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編ksimoji
 
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するPHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するkwatch
 
Objective Front-End JavaScript
Objective Front-End JavaScriptObjective Front-End JavaScript
Objective Front-End JavaScriptMuyuu Fujita
 
Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723龍一 田中
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsShogo Sensui
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】株式会社ランチェスター
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門Kohki Miki
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
RSpecのここがすごい!
RSpecのここがすごい!RSpecのここがすごい!
RSpecのここがすごい!mitim
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングkunihikokaneko1
 
FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法cch-robo
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 

Similar to Javascripでオブジェクト指向 (20)

JSクラス定義
JSクラス定義JSクラス定義
JSクラス定義
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
 
第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編第4回REST勉強会 RequireJS編
第4回REST勉強会 RequireJS編
 
PHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較するPHPとJavaScriptにおけるオブジェクト指向を比較する
PHPとJavaScriptにおけるオブジェクト指向を比較する
 
Cpp v3
Cpp v3Cpp v3
Cpp v3
 
Objective Front-End JavaScript
Objective Front-End JavaScriptObjective Front-End JavaScript
Objective Front-End JavaScript
 
C++勉強会
C++勉強会C++勉強会
C++勉強会
 
Web技術勉強会 20110723
Web技術勉強会 20110723Web技術勉強会 20110723
Web技術勉強会 20110723
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門
 
svelte-ja.pdf
svelte-ja.pdfsvelte-ja.pdf
svelte-ja.pdf
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
RSpecのここがすごい!
RSpecのここがすごい!RSpecのここがすごい!
RSpecのここがすごい!
 
Cubby 2006-08-23
Cubby 2006-08-23Cubby 2006-08-23
Cubby 2006-08-23
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
 
FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法FirefoxOSで学ぶJavaScript作法
FirefoxOSで学ぶJavaScript作法
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 

Javascripでオブジェクト指向