タグ

prototypeに関するpocotan001のブックマーク (10)

  • IEのバグ?prototype拡張時に注意すべきこと - まなぶろぎーく。

    すでに周知の事実かと思いますが、少なくとも自分は知らなかったのでまとめ。 Web開発におけるクロスブラウザ問題は、jQueyやPrototype.jsなどのJSライブラリを使うことで簡単に吸収できます。しかし事情により、使用を極力控えたい場合があるかもしれません。 1サイト複数開発会社体制(ルール決めとかないとエラいことになる)とか Webマスターが知らない間にライブラリ依存のJSコードを別ページに流用とか しかもWebマスターが頻繁に変わる(流用が忘れ去られる)とか prototype拡張でクロスブラウザ対応するとしたら よりラッピング前の記法に近く、よりオブジェクト指向的(JavaScriptは厳密にはprotoytpeベースのオブジェクト指向ですが)な書き方をするとしたら、やはりprototype拡張を上手に駆使することではないでしょうか。 よくある例としてイベントアタッチ部分のクロ

  • [JavaScript] prototypeに直接代入しちゃうのってダメじゃなかったっけ? / LiosK-free Blog

    2010-02-02 カテゴリ: Client Side タグ: JavaScript トラックバック JavaScript基礎文法最速マスター - なんとなく日記という記事がはてブ界隈で話題になっていたので、徒然なるままに読んでみて心に浮かんだことをそこはかとなく書きつけてみる。 まず、どうでもいい細かい点につっこみを入れておくと、「callとapplyは外せないでしょ?」とか「undefinedに限らず、かなりの数の値がオブジェクトではないですよ [注1]」とか「"use strict";してるとhoge();の形で呼び出された場合はthisは window (グローバルオブジェクト)にならないらしいですよ[注2]」とか「for in文ではまりがちな落とし穴って配列走査周りじゃね?」とかいろいろあるんだけど、まあこの辺は別にどうでもいいや。 気になったのは、クラス定義の解説のセクション

  • JavaScriptでnew演算子をつけてもつけなくても同じようにインスタンスを作成 - yuyakkoの日記

    またJavaScriptで遊んでる。 JavaScriptにもnew演算子があった。クラスを定義してからnewでインスタンスを作成するということができるらしい。 コンストラクタになる関数を作ってからそれをnewの後に付けて呼べばいい。 function Class1(){ this.str = "これはClass1のインスタンス"; } Class1.prototype.toString = function(){ return this.str; } var instance1 = new Class1(); alert(instance1); コンストラクタが呼ばれたとき、thisが新しいインスタンスになっているので好きなように初期化する。 でもこれ、new書き忘れたら大変なことになりますね。Class1を普通に関数として呼んだ時のthisは何でしたっけ。ブラウザの場合はwindow?

    JavaScriptでnew演算子をつけてもつけなくても同じようにインスタンスを作成 - yuyakkoの日記
  • JavaScriptで,オブジェクトやクラスの初歩を理解しているか,実力を確かめるための7つの質問 (サンプルコード付き) - 主に言語とシステム開発に関して

    スキルチェックの目次へ JavaScriptはオブジェクト指向のスクリプト言語。 オブジェクトやクラスの扱い方の基礎を理解していない場合,開発の戦力にならない。 JavaScriptの業務スキルレベル 判別表 (5段階) http://language-and-engineering.hatenablog.jp/entry/20100111/p1 初級者を脱した段階(ノーマルレベル)に求められる項目: 「JavaScriptで,プロトタイプベースのOOPができる。」 つまり,オブジェクトの扱いがわからなければ,まだ入門書を読み進めていく段階である。 せめて,以下の7つの質問に答えられるようになろう。 (1)関数呼び出し時にnewを付けるのと付けないのでは, 関数内のthisにどのような違いが生じるか。 関数の呼び方・とらえ方にどのような違いが生じるか。 (2)クラスのインスタンスを生成する

    JavaScriptで,オブジェクトやクラスの初歩を理解しているか,実力を確かめるための7つの質問 (サンプルコード付き) - 主に言語とシステム開発に関して
    pocotan001
    pocotan001 2010/09/29
    prototypeから行なう新規オブジェクトの初期化は静的である。
  • JavaScript初級者から中級者になろう:九章第二回 prototypeの活用

    今回は、prototypeというものを解説します。これは、前回の //Yuushaという関数の型を作る function Yuusha(n){ this.name = n; this.jikoshokai = function(){ alert("私の名前は" + this.name + "です。"); }; } var yuusha1 = new Yuusha("勇者1"); var yuusha2 = new Yuusha("勇者2"); var yuusha3 = new Yuusha("勇者3"); //自己紹介してもらう yuusha1.jikoshokai(); yuusha2.jikoshokai(); yuusha3.jikoshokai(); がまだ完璧ではないということとも関連しています。 まずどこが完璧でないかというと、関数オブジェクトが無駄だということです。基的に

    pocotan001
    pocotan001 2010/08/31
    優しい説明でわかりやすい
  • Javascript/prototypeプロパティ - 俺の基地

    prototypeとはなんなんだ? 今まで単なる継承用の何かをつなげておくためのものだと思っていたが jQueryのコードにチラホラprototypeプロパティからメソッドを直接使う記述があったので気になった さらにnewまでprototypeの中のメソッドを使ってる・・・なんだかよくわからん ▲ ▼ 今の認識と使い方 まずprototypeというものは関数オブジェクトに必ずあって、そこから作られたオブジェクトはprototypeプロパティを継承するということ つまりprototypeプロパティにメンバを追加すればnewした対象に全部メソッドを追加できる var Hoge = function(){}; Hoge.prototype.piyo = function(){alert('aaa');}; var aaa = new Hoge(); aaa.piyo(); こういうこと

  • 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
    pocotan001
    pocotan001 2010/07/07
    代入前にnewされて作成されたオブジェクトと、代入後にnewされたオブジェクトでは全く関連がなくなる
  • apply/call での継承の話 - nothing but trouble

    この件について。 http://d.hatena.ne.jp/iskwn/20091215/1260828978 継承というかスコープがわかりやすいというのもメリットだと思うけど、カプセル化しやすいのも大きなメリットかなと思う。 function Foo(){} (function(){ var bar = 'bar'; this.bar = bar.toUpperCase(); function baz () { console.log('baz'); } this.baz = function() { baz(); console.log('BAZ'); } }).call(Foo.prototype); function Bar(){} Bar.prototype = new Foo(); (function() { this.hoge = 'hoge'; this.baz = fu

    apply/call での継承の話 - nothing but trouble
  • はてなブログ | 無料ブログを作成しよう

    今の自分は、出会った人や読んできたによって、できあがっている あの小冊子は、新聞の付録だったのか、記憶が曖昧で定かではないのだが、1ヶ月に1回程度の頻度で届いていた気がする。オールカラーで内容もさまざまだった気がする。その中には、プロ野球の選手名鑑もあって、私は、母から受け取り、大切にしていた記憶がある。母は、…

    はてなブログ | 無料ブログを作成しよう
  • JavaScriptのprototypeプロパティに対する理解 - 犬も歩けば棒も歩く

    prototypeに対する理解を深めるために少し考えてみた var obj = {}; var func = function(){}; alert(obj.prototype); //undefinedと出力 alert(func.prototype); //[object Object]と出力 まずprototypeプロパティを出力してみる。obj(普通のObject)の場合、undefinedと出力される。つまりprototypeというプロパティ自体もっていない。これに対してfunc(普通のfunction)の場合、prototypeはObjectになる。ここで、prototypeに指定されたオブジェクトはプロトタイプオブジェクトと深い関わりがある。順を追って説明する。 JavaScriptにはプロトタイプチェーンという仕組みがある。このプロトタイプチェーンの仕組みは全てのオブジェク

    JavaScriptのprototypeプロパティに対する理解 - 犬も歩けば棒も歩く
  • 1