タグ

prototypeに関するlesamoureusesのブックマーク (11)

  • や...やっと理解できた!JavaScriptのプロトタイプチェーン - maeharinの日記

    JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう

    や...やっと理解できた!JavaScriptのプロトタイプチェーン - maeharinの日記
    lesamoureuses
    lesamoureuses 2013/02/15
    絵がいいですね。こういうの始めの頃に触れるのと触れるので理解のしやすさが変わるから教える時に使いたい
  • javascript - にはクラスはない : 404 Blog Not Found

    2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi

    javascript - にはクラスはない : 404 Blog Not Found
    lesamoureuses
    lesamoureuses 2009/08/25
    実際にb.prototypeがあるわけじゃなくて、b.__proto__みたいなのが参照されるというのをわかりやすく書いてるんだろうな>「b.yにないものはb.prototype.yが参照される」
  • Kanasan.JS JavaScript 第5版読書会 #2 雑感 - blanket log

    やはり能動的な目的(を読む!)があるというのは良いもので、人の話聞いてるだけの勉強会よりずっと充実した一日に思えました。議論は絶えないしそれを眺めているだけでも楽しかった。 サイは2年くらい前にざっと通読した程度ですが、当時はちゃんと分かってなかった部分も多かったので復習を兼ねて参加しました。コアの部分はそれほど変わっていませんが、結構忘れていたこと多かったですし言語仕様の細かいところをちゃんと抑える良い機会になりました。 あと、いろんな人とお話できたのが良かったです。勉強会後の懇親会の方がむしろ面白い話を聞けたかもしれない。id:amachangは、すごく実直な方だなぁと思った。 40人を越える大所帯となると、仕切る側がとても大変そうでした。運営陣の皆様、当にありがとうございました。 おそらく次回が山場になる(関数とかプロトタイプとか)と思うので、今から非常に楽しみです。 prot

    Kanasan.JS JavaScript 第5版読書会 #2 雑感 - blanket log
  • prototype と __proto__ と constructor, Property Accessor とメソッド呼び出し, JavaScript における mix-in - ema log(2008-01-21)

    _ [JavaScript] prototype と __proto__ と constructor いまいち働いてない頭であれこれ考えて、手を動かしてみた。こんなことばっかりやっててすみません。ここ一週間ほどのまとめです。 「Kanasan.JS JavaScript 第5版読書会 #2 雑感」 [blanket sky] に同様の内容が書かれていますが、うちより断然まとまってました。 まとめると constructor: 初期化に使われた関数(オブジェクト)(であることが期待される、ぐらい?) prototype: 拡張するためのオブジェクト(コンストラクタで初期化されたオブジェクトに対して) __proto__: プロトタイプオブジェクト(プロパティが見つからなかったときに探索しに行くオブジェクト) の様になります。色々な人が苦しんでるんだろうなぁ。 prototype と __pr

    prototype と __proto__ と constructor, Property Accessor とメソッド呼び出し, JavaScript における mix-in - ema log(2008-01-21)
  • JavaScriptクラス作成方法:とりあえずまとめ - builder by ZDNet Japan

    前回までのおさらいと今回のあらすじ これまで二回にわたって、「JavaScriptでオブジェクト指向を行うには」というトピックについてお話ししてきました。 前々回は、「コンストラクタ=関数」であるという事実を紹介し、独自のクラスを作成する方法についてお話ししました。 前回は、JavaScriptによるオブジェクト指向の中核とも言える「プロトタイプ」と言う仕組みについて紹介しました(プロトタイプについてのお話はまだ終わりではありません。次回、さらに進んだ「プロトタイプチェイン」と言うテクニックについてお話します)。 ここまでの説明で、JavaScriptでオブジェクト指向を行うための基的な知識はほとんど押さえたことになります。そこで今回は、これまで学んだことをしっかり身につけるためにも「JavaScriptでクラスを作るには」という点をしっかりおさらいしておきたいと思います。その過程で、今

    JavaScriptクラス作成方法:とりあえずまとめ - builder by ZDNet Japan
    lesamoureuses
    lesamoureuses 2008/03/23
    最近この書き方で書くようになった。クラス変数とかも。
  • ハタさんのブログ : re: [JavaScript][prototype]メソッドがなければprototypeをさかのぼる

    あなたの疑問答えます!のコーナーの時間です。 via - メソッドがなければprototypeをさかのぼる - lesamoureusesの日記 その2で書いたコードについて、 var Echo = { hello: function (){ return 'hello'; } }; var Hoge = function (){}; Hoge.prototype = Echo; var hoge = new Hoge; alert(hoge.hello()); // hello Echo.world = function (){ return 'world'; }; alert(hoge.world()); // world これはEchoがオブジェクトで(newしていなくて)、hogeがメソッド「world」を探そうとした時に 自分にないからHogeにさかのぼり、さらにHogeにな

    lesamoureuses
    lesamoureuses 2007/12/20
    おぉ。補足はありがたい。もう一度読んでから復習タイム。
  • ハタさんのブログ(復刻版) : javascriptを初めて学ぶ人についてのおさらい。その2

    前回のエントリが700users突入しました。ありがとうございます。参考になれば幸いです。 ということで、その2になります。 前回書いた通り、C/Javaについてはある程度の知識がある人なので、クラスなどのオブジェクト指向はちゃんと理解されているようですが、プロトタイプ指向は初めて学ぶようです。 javascript(ECMAScript)のプロトタイプは他のプロトタイプ指向言語とはひと味違う動作をするので、その点も含めておさらい プロトタイプとはなんですか?プロトタイプとは継承パターンの一つでしかないです プロトタイプは単なる継承パターンであり、単一の方向への継承しか行わない点についてはクラスベースと同じです。 var Hoge = function (){}; Hoge.prototype.methodA = function (){ return "this is methodA

    lesamoureuses
    lesamoureuses 2007/12/18
    継承パターンとしてのプロトタイプと、その記述(実装)による動きの違い
  • web newbie - Javascript初心者からみたprototype

    http://d.hatena.ne.jp/amachang/20070413/1176421425 勉強会のあと、そしてこの記事の後、 もう一度自分の中でprototypeについてまとめてみた。 下の実行結果を見て、首をかしげた人は是非とも読んでいただければと思う。 (って、首をかしげるのは僕だけか?!) var Box = function(size){ this.size = size; }; Box.prototype = { color: "red" }; var box = new Box(10); alert(box.color); // red Box.prototype = { color: "blue" }; alert(box.color); // red var box2 = new Box(11); alert(box2.color); // blue Box.p

    web newbie - Javascript初心者からみたprototype
    lesamoureuses
    lesamoureuses 2007/04/18
    「alert(box.color); // red (想定してたのはyellow)」ココおんなじこと思った。そうか、blueにした時点でredはもう関係ないのね。
  • 404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門

    2007年04月12日23:30 カテゴリLightweight Languages javascript - 勝手に添削 - JavaScript入門 釈迦に説法を承知で。 IT戦記 - 社内勉強会資料 amachang - JavaScript 入門Object.prototype = { /* ... */ }は避けるべし みにくいのでオブジェクトを入れ替える方式に Box.prototype = { speed: 4, move: function() { this.left += this.speed; this.element.style.left = this.left + 'px'; if (this.left > 400) clearInterval(this.id); }, start: function() { var self = this; this.id = s

    404 Blog Not Found:javascript - 勝手に添削 - JavaScript入門
    lesamoureuses
    lesamoureuses 2007/04/18
    prototypeとwithについてダメだよねって話。これに対する反論もあるのでそちらも参照
  • JavaScript OOP におけるクラス定義方法 - IT戦記

    クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler

    lesamoureuses
    lesamoureuses 2006/10/23
    クラスの書き方一覧
  • CodeZine:プロトタイプ(prototype)によるJavaScriptのオブジェクト指向(プロトタイプ, オブジェクト, Javascript, ECMASCript)

    はじめに JavaScriptはオブジェクト指向言語です。しかし、そのオブジェクトの性質は、他に良く知られているオブジェクト指向言語のJavaC++と大きく異なっています。 そこでこの記事では、なぜそのような違いがあるのか、JavaScriptにおけるオブジェクト指向の言語思想を見ていくと共に、その違いの根幹であるプロトタイプについて解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(JScript、ActionScript)でも通じる内容になっています。 対象読者 プログラミングの基的な知識、ならびにオブジェクトやメソッドと言った基礎的な概念については、ここでは解説しません。最低限、オブジェクト指向プログラミングについて

    lesamoureuses
    lesamoureuses 2005/12/09
    プロパティを持っていない場合はprototypeを辿る
  • 1