タグ

OOPに関するcyokodogのブックマーク (8)

  • 多段継承できるクラス生成関数を頑張って作りました - ?D of K

    JavaScriptでクラスを作るのは簡単なのですが、継承したり、オーバーライドしたメソッドを簡単に呼び出すとなると途端にレベルが上がります。 ChromeやFirefoxで使うので、関数呼び出し多めでも大丈夫(IE6でも動くけど) this.parent.method()で親クラスのメソッド、this.parent.parent.method()で祖父クラスのメソッドが呼べる this.parent.variableで親クラスのインスタンス変数とかはついていないです という感じで、頑張って作ってみた。 使い方 var A = $_klass({ init: function () { print("A init"); }, // コンストラクタ hoge: function () { print("A hoge"); }, huga: function () { print("A hug

    多段継承できるクラス生成関数を頑張って作りました - ?D of K
  • ”継承”のヒント - 趣味の延長線

    Javascriptでも”オブジェクト化”意識で悩み中。 特に”継承”。 ”何かキーになりそうな”URL、メモ。 (12/10 URL追加) jQuery.extendとjQuery.fn.extend jQuery.extend(object) - jQuery 日語リファレンス jQuery.fn.extend(object) - jQuery 日語リファレンス jQuery.extendとjQuery.fn.extendの違い - こんにちはこんにちはmonmonです! http://allabout.co.jp/internet/javascript/closeup/CU20071120A/index2.htm(jQuery.fnの使い方) jQueryプラグインの作り方 Plugins | jQuery Learning Center jQueryで”継承” jQuery 開

    ”継承”のヒント - 趣味の延長線
  • jQueryでPrototype.js風のクラスを使う | へびにっき

    Prototype.js 風の Class を書きたいが、ライブラリ全体は読み込みたくない、というときのために、必要最低限のコードを抜き出してみた。要jQuery。 var Class = (function() { function subclass() {} return { create: function(parent) { function klass() { this.initialize.apply(this, arguments); } var index = 0; if(jQuery.isFunction(parent)) { index = 1; subclass.prototype = parent.prototype; klass.prototype = new subclass; } for(; index < arguments.length; ++index)

  • Kanasan.JS JavaScript 第 5 版読書会 #4: Days on the Moon

    Kanasan.JS の JavaScript 第 5 版 (サイ) 読書会 #4 に行ってきました (参加者のブログ記事一覧、当日のチャットログ)。 会場、設営 開始 15 分ほど前に会場に着いたのですが人気なし。特に名前のない貸し会議室とのことで、当にここであってるのか Twitter で他者の動向を探ろうとするも、運悪く Twitter がダウン中。携帯から必死に地図を探していたところにほかの人が到着して一安心となりました。 開始時点で Windows マシン使用者が私を含めて 2 人という脅威のMac率でした。無線 LAN の共有も Mac 機を主体に行われ、そのせいか Windows 機では無線 LAN が利用できず。私は結局 Kanasan さんの EMOBILE 端末を借りてネットに接続しました。 クラス JavaScript にクラスベースオブジェクト指向言語でいうとこ

  • JavaScript の new 演算子の意味: Days on the Moon

    JavaScript における new 演算子の動作は大まかにいって以下のとおりである。(new F() とした場合。) 新しいオブジェクトを作る。 1 で作ったオブジェクトの [[Prototype]] 内部プロパティ (__proto__ プロパティ) に F.prototype の値を設定する。 F.prototype の値がオブジェクトでないのなら代わりに Object.prototype の値を設定する。 F を呼び出す。このとき this の値は 1 で作ったオブジェクトとし、引数には new 演算子とともに使われた引数をそのまま用いる。 3 の返り値がオブジェクトならそれを返す。そうでなければ 1 で作ったオブジェクトを返す。 ここで「オブジェクトである」というのはプリミティブ値 (文字列、数値、真偽値、undefined 、null) ではないということだ。new Stri

  • クラスの継承の仕方 - 教えて!goo

    JavaScriptにはクラス定義がないので、プロパティとメソッドを動的に継承しなければなりません。 プロパティは、コンストラクタから親のコンストラクタを呼び出すことで継承します。 ただし、その際 this のメソッドとして呼ばないと、親コンストラクタでの初期化が自分に反映されません。親コンストラクタをメソッドとして呼び出すには、 > call(または apply)メソッドを使い、「親コンストラクタ.call(this, 引数...)」とする。 または > 一時的に親のコンストラクタをプロパティに登録し、実行後に削除する。 という方法を取ります。 メソッドは、親の prototype を自分の prototype にコピーすることで継承します。 ただし、prototype はオブジェクトなので単に代入すると親のものを参照するようになってしまい、メソッドの追加

  • JavaScriptのオブジェクト指向入門 - Thousand Years

    ちょっと色々なサイトで取り上げられているので二番煎じですがまとめておく必要がでてきたのでポストします。 JavaScript言語概要 JavaScript は 手続き型 (procedural) 言語と オブジェクト指向 (object oriented) 言語の両方として機能させられる。 オブジェクトは JavaScript では、 C++Java のようなコンパイラ型言語において一般的な構文クラス定義と反対に、 実行時にメソッドとプロパティをそれ以外からのオブジェクトに加えることで プログラムに基づいて作成される。一度オブジェクトが構築されると、 同じようなオブジェクトを作成するのに青写真 (あるいは プロトタイプ) として使える。 Mozilla Japan, Mozilla Foundation and Mozilla Corporation 2004-2006 JavaSc

    JavaScriptのオブジェクト指向入門 - Thousand Years
  • iandeth. - Javascriptで快適・お手軽OOP - オレ的まとめ

    Javascriptでオブジェクト指向なコードを書くには、prototypeベースな言語ゆえ、他のOO言語と異なり多少の小細工が必要になります。やり方は幾つもあるようですが、自分であれこれ試してみたうえでのまとめをここで共有してみます。 OOPと言っても、あくまで個人的に最低限必要だと思うこれら機能の実現を目的にしています: 子クラスのコンストラクタにて、親のコンストラクタを実行 他のOO言語では空気を吸うがごとく実装されている機能 メソッドの継承 Child.prototype = new Parent() なんて親インスタンスを作る事無くなんとかする これらをいかに少ない手間で実現できるか。hacker諸氏ならばちょろっと頭使えばできるのでしょうが、自分はウダウダ時間かけて悩んでしまいました orz。以下3通りの解決策です。 目次 専用のextend関数を使う 使い方 サンプルおよびテ

    cyokodog
    cyokodog 2008/05/20
    javascriptのオリジナルoop。
  • 1