2005-09-01から1ヶ月間の記事一覧

プリミティブ値

JavaScriptではあらゆるオブジェクトはObject型の子である。数値や文字列といったものでも例外ではない。オブジェクトはプロパティーを持ち、それは拡張できる。 var a = new Object(); a.p = "test"; alert( a.p ); // "test" JavaScriptにはString型、Numb…

prototypeでオブジェクト型プロパティーを定義してはいけない

function Class(){ } Class.prototype.p1=new Array();さて上のコードに問題があることがわかるだろうか? JavaScriptではクラス定義の代わりにprototypeを使う。 オブジェクトは自信に定義されていないプロパティーはprototypeチェーンをたどって検索し、そ…

高速しりとり

http://www.horaguchi.net/article.php/1349/ を読んで思いついた。誰かもうやってるかもしれないけど。 基本はしりとり 順番に名詞を発言していく 発言者は前の人が発言した名詞の、最後の文字から始まる名詞を発言する 「ん」が最後につく名詞を発言しては…

関数の実行時間を得る

↑のエントリに関連して。JavaScriptだと Dateオブジェクトは数値として扱うことができ、その場合ミリ秒の数字になる。従って var start = new Date(); testfunction(); var end = new Date(); var span = end-start; // start から end までのミリ秒を得ると…

MozillaDOMの不思議 style.display をいじるよりappendChildの方が早い

GreaseMonkeyをいじっていたんですが、2ちゃんねるのスレッド一覧をインクリメントサーチするスクリプトを書いてたんです。 // as は 検索したい文字列のリスト // as[i].element は文字列に対応する A エレメント // ↑はdocument.getElementsByTagName('A'…

XMLHttpRequestの文字化けにoverrideMimeType

XMLHttpRequestでshift_jisなどからshift_jisのstaticなテキストを読もうとしたときに文字化けすることがある。 var n = new XMLHttpRequest(); n.open("/sjis.txt"); :Content-Typeのcharsetがちゃんとしてなかったりする場合だ。で、MozillaのXMLHttpReque…

prototypeに直接オブジェクトを代入するときの不具合

javascriptの”クラス”の作り方としていくつかの方法があるが function class1(){ } class1.prototype={ prop:1 }こういう書き方がある。なんだか記述量が減って素敵な気がするのだが function class2(){ } class2.prototype.prop = 1;実は、こういう作り方と…

Object.prototype 汚染に関してObjectを親に持たないオブジェクト

__prpto__ に null を代入すればObjectを親に持たないオブジェクトが作成できる。 問題の所在 以前書いたエントリーの通り、Object.prototype に便利関数を入れるとどんなオブジェクトに対しても使えるようになって便利なんだけどハッシュとして使用する場合…

XMLビルダ

Collection & Copy - JavaScript、マークアップビルダ、存在しないメソッド http://d.hatena.ne.jp/brazil/20050905/1125896604 を読んで、すこし話題がずれるんですが、JavaScriptでXMLマークアップビルダ作るならこんな感じかなぁ /** よくあるHTMLエスケ…