http://anond.hatelabo.jp/20110316202255
亀仙流やつ鶴仙流など、世の中にはいくつかの流派があり、それぞれ カメハメ波やドドン波、舞空術などの技(メソッド)がある。 実際に技を使う場合、技を覚えているZ戦士(インスタンス)が必要。
クラス = 流派
メソッド = 技
インスタンス = Z 戦士
というのはおもしろいと思うし, 例えばゲームを作るなら実際にそういう実装になると思う.
例)セルを作りましょう。 class Cell extends Goku,Veget,Picoro,Tenshinhan,Kuririn{ .... } cell_inst = new Cell(); cell_inst.shotKienzan(); //Kuririnをextendsしているので気円斬が使えます。
しかし, ここではクラス = Z 戦士になってしまっているので, 混乱を招くだろう.
むしろ, 「JavaScript における prototype」 に絞って説明するのはどうだろう.
(ついでに「撃つ」の現在形は shot でなく shoot ですね)
var Goku = function () {}; Goku.prototype.shootKamehameha = function () { console.log("波!!!"); }; var goku = new Goku; goku.shootKamehameha(); // 波!!! var Gohan = function () {}; Gohan.prototype = new Goku; var gohan = new Gohan; gohan.shootKamehameha(); // 波!!!
そしてセルによる吸収は, 動的な継承として考えるのがより自然だろう.
var Goku = function () {}; Goku.prototype.shootKamehameha = function () { console.log("波!!!"); }; var Vegeta = function () {}; Vegeta.prototype.shootBigBangAttack = function () { console.log("ビッグバンアタック!!!"); }; var Cell = function () {}; // 吸収メソッド Cell.prototype.absorb = function (target) { for (var method in target) { this[method] = target[method]; } }; var goku = new Goku; var vegeta = new Vegeta; var cell = new Cell; cell.absorb(goku); // 悟空を吸収 cell.absorb(vegeta); // ベジータを吸収 cell.shootKamehameha(); // 波!!! cell.shootBigBangAttack(); // ビッッグバンアタック!!!
そして次にクロージャの使用例として挙げられた次の例.
例)連続エネルギー波 var shotRenzokuEnergy = function( count ){ var shotEnergy = function(){ //エネルギー波を放ちます }; for(var i=0;i<count;i++){ shotEnergy(); } };
この実装では, shotRenzokuEnergy を実行するたびに shotEnergy が毎回定義されてしまい, 非効率である.
以下のように書き換えることで, shootEnergy の定義は, shootRenzokuEnergy の定義時の 1 回のみとなる.
var shootRenzokuEnergy = (function () { var shootEnergy = function () { console.log("エネルギー波!!!"); }; return function (count) { for (var i = 0; i < count; i++) { shootEnergy(); } }; })(); shootRenzokuEnergy(10); // エネルギー波!!! x 10
http://anond.hatelabo.jp/20110316202255 デザインパターン編を書いてたら99ブクマだと…。なんだかすみません。 あと増田で書くの初めてで記法がちとわかっていなくて見づらくて申し訳ないです...
オブジェクト指向の基本 亀仙流やつ鶴仙流など、世の中にはいくつかの流派があり、それぞれ カメハメ波やドドン波、舞空術などの技(メソッド)がある。 実際に技を使う場合、技を...
実際に技を使う場合、技を覚えているZ戦士(インスタンス)が必要。 Z戦士によっては複数の流派の技が使えたり、自分の技を人に教えることが出来る(継承) インスタンスなのかク...
http://anond.hatelabo.jp/20110316202255 - ドラゴンボールで学ぶオブジェクト指向
これは http://anond.hatelabo.jp/20110316202255 の続編です。 GTをやる前に改を書いてくれている人がいてとてもしっかりした内容なのでちゃんと勉強したい人はそっちを見てね! d:id:ryoasai:20110317...
お金持ちに大量に触れて気づいた8の共通点 http://anond.hatelabo.jp/20110825105018 3317users 生活・人生 2011/08/25 --------------------- 自分でWEBサービスを作りたいと思っている人へ http://anond.hatelabo.jp/201...
こりゃひでえ
このリストはどうやて作ってるんだろう? きれいに整理されているから似たようなものを作ってみたいんだけど……
anond:20120303220901を見て何となく調べてみたくなった。デイリーのホットエントリに入っているものだけだから抜けがあると思う。 482あとで 【永久保存版】「お金がもらえる・戻ってくる...
いいね
いいね
なんで2回書くねん なんで2回書くねん
順位 総合 タイトル ブクマ数 日付 カテゴリ 1 (5) ずぼらな俺が4年間の一人暮らしでたどり着いた部屋作り&暮らし方 3797users 2011/08/28 生活・人生 2 (6) お金...
順位 総合 タイトル ブクマ数 日付 カテゴリ 1 (5) ずぼらな俺が4年間の一人暮らしでたどり着いた部屋作り&暮らし方 3797users 2011/08/28 生活・人生 2 (6) お金...
ランク タイトル ブクマ数 日付 カテゴリ 1 急がばまわれ式・堅実で一番効率的な英語の勉強法 7900users 2009/10/26 22:02 学び 2 20年来のつらさがほぼ消えたことにつ...
ランク タイトル ブクマ数 日付 カテゴリ 1 急がばまわれ式・堅実で一番効率的な英語の勉強法 7900users 2009/10/26 22:02 学び 2 20年来のつらさがほぼ消えたことにつ...
http://anond.hatelabo.jp/20110316202255 http://anond.hatelabo.jp/20110316215156 http://anond.hatelabo.jp/20110316224648 noumin = new Hito(); noumin.kougekiKuwa = new function(){ //戦闘力たったの5…ゴミめ! }; noumin.shotKamehame...