タグ

!tumblr-techとprototypeに関するtyruのブックマーク (4)

  • JavaScriptにおけるオブジェクトの定義 - Islands in the byte stream (legacy)

    JavaScriptで一番簡単にオブジェクト指向プログラミングを行う方法 (id:perlcodesample) 私は特にJavaScriptに詳しいわけではなく、オライリーの『JavaScript』、通称サイを読んだ程度なのですが、私の知るかぎりJavaScriptでオブジェクト*1を定義する方法には二つの軸があります。一つ目はオブジェクトの生成方法で、二つ目はメソッドの与え方です。すなわち: new演算子で生成する / オブジェクトリテラルで生成する prototypeによってメソッドを生やす*2 / プロパティを直接代入してメソッドを生やす これについて具体的に説明してほしいとのことでしたので、以下にこの二つの軸の組み合わせ、計4つの方法を示します。 (実行可能なコードはjsdo.itにて: http://jsdo.it/gfx/9LR3) var pointToString =

    JavaScriptにおけるオブジェクトの定義 - Islands in the byte stream (legacy)
  • prototypeと__proto__ - mfumiの日記

    prototypeと__proto__についてよく分からないので調べてみると、以下のページを見つけました。 http://www.mollypages.org/misc/js.mp このページの図が全てだと思いますが、自分用に勝手にページを翻訳してみました。誤訳とかあるかも分かりません。。 - ポイント ・全てのインスタンスはそれを作ったファンクションのプロトタイプオブジェクトを継承する。 ・Mozilla/Konqueror には __proto__ という、そのインスタンスを作成したファンクションのプロパティオブジェクトを指すプロパティがある。 ・__proto__ プロパティの有無にかかわらず、全てのオブジェクトは オブジェクトを作った関数のprototype プロパティを使う。 prototype プロパティは 関数そのものを指すconstructor プロパティを持つ。 ・pro

    prototypeと__proto__ - mfumiの日記
  • JavaScriptのnewって何?一体何なの?という話 - 愛と勇気と缶ビール

    マクラ JavaScriptを使っている人なら知っていることだろうけど、JavaScriptはプロトタイプベースのオブジェクト指向を採用しているので「クラス」がない。オブジェクトしかない。 でも、組み込みの演算子としてnewがあって、それを使って var obj = new Object(); とか書けちゃう。クラスってものはJavaScriptにはないはずなのに、new ClassName();と書くとあたかもClassNameクラスのオブジェクトのインスタンスが生成され、それが返ってくるかのような挙動をしている。 これは気持ち悪い。言語仕様としてはクラスは来存在しないのに、クラスのようなものが導入されている。まともな神経を持った人間なら、一体new演算子って何なの?という疑問を持つのが当たり前である。「{}はnew Object()のシンタックスシュガーです」とか言ってふんぞり返って

    JavaScriptのnewって何?一体何なの?という話 - 愛と勇気と缶ビール
  • JavaScript, apply/call メソッドと prototype 継承 : Serendip – Webデザイン・プログラミング

    こちらのサイト『JavaScriptで継承やるときにprototype書きまくるのめんどい人は – あ、いしかわですね』で Function.apply を使って継承を記述する方法が紹介されていた。 apply と call の使い方を今一度復習しておく。 Function.apply function.apply(obj, args) function を obj のメソッドとして呼び出す。 引数として配列 args を渡すことができる。 function のボディ内では obj に this でアクセスできる。 /* オブジェクトにメソッドを適用させる */ console.log(Array.prototype.reverse.apply([1, 2, 3])); /* [ 3, 2, 1 ] */ console.log(String.prototype.split.apply('

  • 1