IE と Gecko 系とたぶん document.styleSheets がちゃんと実装されているブラウザで動くスタイルスウィッチャみたいなものを作ってみた。左下に表示させてみるテスツ。

いらない。

  1. トップ
  2. web
  3. 現実逃避スクリプト
  1. トップ
  2. prog
  3. 現実逃避スクリプト

寝るとき少し浅い眠りに入ってから深くなると思うのだけど、その浅い眠りのときに悪夢をよく見る。悪夢でなくとも布団に強く押し付けられる感覚にはよくなる。よく、というか毎日。一回そうなると「寝る→薄く起きる」を繰り返してなかなか眠れなくなる。回避方法としては直前まで音楽を聴いておくこととかぐらいしかない。スピーカーがデストローイ!なのでヘッドフォン……

  1. トップ
  2. self
  3. 悪夢が続く
  1. トップ
  2. life
  3. 悪夢が続く

昨日書いたのは間違いだったっぽい……

function Foo(len) {
this.length = len;
}
Foo.prototype = {
unk : function () {
alert("unk");
}
}
alert(Foo.prototype.constructor); //=> function Object() {}
Object.prototype.bar = function () {alert("bar")}
Array.prototype.baz = function () {alert("baz")}
Foo.prototype.constructor = Array;
alert(Foo.prototype.constructor); //=> function Array() {}
var ifoo = new Foo(3);
ifoo.unk(); //=> unk
ifoo.bar(); //=> bar
ifoo.baz(); //=> ifoo.baz is not a function

prototype のプロトタイプを辿っていくのがプロトタイプチェーンじゃないのか……それとも prorotype のプロトタイプというのを勘違いしているんだろうか……

  1. トップ
  2. prog
  3. ECMAScript Object.prototype

Object.prototype.foo = function () {alert(this);}
document.foo(); //=> [object HTMLDocument]
alert(document.documentElement.childNodes); //=> [object NodeList]
document.documentElement.childNodes.foo(); //=> Error: (snip).childNodes.foo is not a function.

なんでだろう? うーん全部のオブジェクトは Object オブジェクトの仲間(?)なんだよねぇ。 いや、なんで Object.prototype に設定すると他のオブジェクトから呼べるかよくわからないんだけど……プロトタイプ辿ったら Object.prototype にいきつくのかなぁと思いきや document.prototypeundefined だし……

Opera だと [object NodeList] が表示される。Gecko のバグなのかな。

あ、インスタンス化(?)されてるから document.prototype じゃなくて document.constructor.prototype か。それならわかる。いやいやわかんないけど。なんかイメージできない。prototype もオブジェクトであるからコンストラクタがあるはずで、さらには参照している prototype があるかもしれない的? document.constructor.prototype.constructor[object Object] だからたぶんそれであっているはず……

あぁ。インスタンスってのはやっぱクラスベースに使う用語なんだ……インスタンスとか言い出すと全部インスタンスだよなぁ……

  1. トップ
  2. prog
  3. Object.prototype