2004年 11月 02日

サイト構造とか。子供のとき好きだった絵とか

常に綺麗なサイト構造を考えたい。直感的でないナヴィゲーションや構造を省きたい。ユーザビリティ。

気がつけば ママの姿は消えていた

親の話とか聞いているとだいぶ俺のアレと違っていたりするわけで、その中でも一番最初にアレだと思ったのは「迷子になったことがない」話。確かにアナウンスされるような迷子にはなっていないにしても、親の姿を完全に見失って迷子になったと不安になったことはあるわけで、そんなこと全く気付いていなかったりするんだなぁと。迷子になったとき冷や汗書くと同時に服の色思い出して目に集中しろと考えてた。自分が思うかぎり結構迷子(未遂)があった気がする……

2004年 10月 31日

Object.prototype にプロパティを追加する副作用

できるだけ追加しないほうがいいねっていう話。なぜなら、単純に連想配列としてオブジェクトを作っても prototype に追加したプロパティが列挙されちゃうわけで面倒くさいから。例えば Object.prototype.foo = function () {retrun this}; + var hash = {} のとき for (prop in hash) とかやると foo が出てきたりするわけですよ。うん。やめよう。

あらゆる

想像力を失くしてはいけない。想像力を失くしてはいけない。想像力を失くしてはいけない。想像力を失くしてはいけない。

2004年 10月 30日

スクリプト使ううえで

まず絶対やらないのは body 以下にスクリプトを直接書くこと。つまり onclick とかの属性は書かない。ヘッダの <script type="text/javascript" src=""></script>を書くだけで完結するコードを書く。メッセージを表示させるための領域が欲しかったりしたら DOM で作る。上手くいかなかったら諦める。

忘れそう。模試について

前回(2004-10-10)の全統記述私大を完全に忘れていて受けてないとかいうアフォなことをやったもんで、明日(全統マーク)も忘れそうな勢いだったのを中和しとかないとなぁと。tu-ka 勉強してない人がうける模試ってどういう意味があるんだろう。別に超受けたくねぇよっていう意味じゃないけど、やるなら平日に……

忘れずに行った! オレえらすぎ! そして出席番号をまた間違えた! 前回は届いたけど今回は校外だから届かないかも! 五水井!

2004年 10月 29日

現実逃避スクリプト

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

いらない。

2004年 10月 28日

悪夢が続く

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

ECMAScript Object.prototype

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

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 のプロトタイプというのを勘違いしているんだろうか……

2004年 10月 27日

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] だからたぶんそれであっているはず……

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