2007-07-19
■関数もまたオブジェクト 続き
javascriptに関する質問です。
http://q.hatena.ne.jp/1184576878
そうか。fugaを普通の関数の形式で書いたのが良くなかったか。
a=10;
function hoge(){
var a=1;
var huga = function(){alert(a)};
setTimeout(huga, 1000);
a++;
}
hoge();
これで"2"が表示される。
hogeの実行で作られた"無名の関数"のオブジェクト*1がfugaに代入される。
このオブジェクトはhogeの実行後も存在する。少なくともsetTimeoutによる遅延されて実行されるまでは。
fugaが参照している a もまたhogeの実行後も存在する。
この a は正確には hoge.a なわけだ。
そうか。
a=10;
function hoge(){
var a=1;
var huga = function(){alert(a)};
setTimeout(huga, 1000);
a++;
}
hoge1 = new hoge();
hoge2 = new hoge();
とすると、1回目のhogeと2回目のhogeの実行で、別々の a が確保されることがより判りやすくなるな(hoge1.a と hoge2.a だということがはっきり意識できる!)。
ちなみにこれだと"2"が2回出てくる。
■役に立つことだけが学習か
昨日、弾さんのこのページを見て、ケラケラ笑っていたのだけど。
ふと思う。その時間は無駄だったのか。
笑うこと、可笑しいと思うこと、その感性。そういうものは役に立たないことのか。
違うだろう。
なんてね。
*1 Javascriptはまともに使ったことが無いのでde factoな表現も公式な表現も知らない。
2007-07-18
■タスクバー シャッフル
タスクバー上のアイコン――ってあれはなんと呼べばいいんだろう?――を入れ換えることができるソフト。
……らしい。
インストールなどはまだしていない。
via
追記
っていうかよく考えてみたら私は使わないなぁ。
参照。
■関数もまたオブジェクト
var a=2;
javascriptに関する質問です。 a=1; function hoge(){ var a=2; setTimeout(
setTimeout(function(){alert(a)},2000);
は、
function(){alert(2)}
という関数オブジェクトが渡されます。
(aは変数なので、呼ばれた時点で値が評価される)
が正しいとしたら、
<html>
<head>
<title>test</title>
<script type="text/javascript"><!--
var a=1;
setTimeout(function(){alert(a)},2000);
a++;
//--></script>
</head>
<body>only test</body></html>
とすると"2"と表示されることをどう説明する?
function(){alert(a)} が"無名の関数"のオブジェクトだというあたりが、理解を難しくしている原因だと思うけど……。
追記
私は 5. の回答者です。
setTimeout(hoge, 5000);
setTimeout(hoge, 1000);
setTimeout("alert(b)", 20000);
これでも実行結果同じなんですね。これは危険が危ない。
は当然で、1行目のhogeが"2回目に実行されるhoge"に、2行目のhogeが"1回目に実行されるhoge"になるというだけですから。(hugaも同じ)
"1行目のhoge"という表現を使っていないことにご注意を。
■Q.E.D. 27
「立証責任」を読んで理解した。
なぜこの漫画が好きなのか。面白いと思うのか。
ハードボイルドだからだ。
いやいや。ボギーみたいだとかそういうわけではなくて、
文芸用語としては、反道徳的・暴力的な内容を、批判を加えず、客観的で簡潔な描写で記述する手法・文体
ハードボイルド - Wikipedia
に近い意味として、あるいは、
の井上雅彦さん、朝松健さん、二階堂黎人さんの対談で朝松さんが言った
心理描写を完全に省いた、客観描写で綴っていくもの、それがハードボイルド。
の意味で。
とはいえ、燈馬君の心理描写が一切無かったというわけではないし、彼の代わりに可奈が一手に引き受けているのではあるが。
さておき。
それに思い至ればもう一つのミステリー漫画のお気に入り、NERVOUS BREAKDOWN もまた基本的に客観描写で、安堂君のオフなんてほとんど記憶にないなぁ、とか思ったりもする。
「全ての謎は解けた!」と主人公が叫ぶ時、読む側は――謎など一つも解っていなくても――彼に感情移入しているのかもしれない。
それを排した作品がお気に入りなのは、偶然ではないだろう。
きっと。
2007-07-17
■燃料を節約する29の方法、というタイトルだけど
えぇい! 29もあったら全部見られないっての! (なんせ英文だし)
と思ったけど、lifehacker が1つ抜き出して話をしている。
「スムースに運転できるだけで全然違う」ってとこか。
「車が増えること」「車を運転する機会が増えること」以上に、それによって「渋滞が起きること」が問題なのかな、と思い巡らした。
■空集合はφか0か
空集合の記号がφじゃなくて"斜線付きの0"で表記されていると、それが空集合だと認識するまでにタイムラグがあるなぁ。
■SFU の ls
普通のUNIXのシェルだと、ls は標準出力にリダイレクトされた時は、1行1ファイルになる。
Windowsにインストールして使うSFU(Service For Unix)の ls はそうなってない。
Helpを見て、-1 オプションを見つけた。
メモ。
2007-07-16
■ポケットモンスター
観てきた。子供とね。
ぶっちゃけサトシ達がいてもいなくても事件の顛末は変わらなかったんじゃないか? というぐらいストーリーに絡んでいなかったなぁ。
2007-07-14
■「ポリシー」に納得できないなら「属性」に言い換えてみよう!
日常的に使っている/使われているにも関わらず、「ポリシーって何?」と本気で聞かれると答えるのに困るわけで。
方針。政策。考え方。 規範。賢明。
検索したり辞書を手繰ったりしてみるとこんな感じ。
まぁ確かにそうなんだけど、しっくりこないなぁ。
と感じていた。
しかーし、偉大なる日本のOTAKUはこれに匹敵する概念をすでに作り出しているのだ。
「属性」
である。もしくは「属性萌え」か。
「なんでこのキャラなの?」
「俺は眼鏡属性萌えなんだよ!」
……そのキャラ*1について、バックグラウンドやディテールの説明なしに、これだけで「なぁ、そうなのね」と納得させてしまう――納得はしないが理解できてしまう何かを感じさせるではないか!
「なんでこんなウィルス対策ソフトに指定されているんですか? 選択の余地はないんですか?」
「そういうポリシーなんだよ!」
で納得できなくても、
「なんでこんなウィルス対策ソフトに指定されているんですか? 選択の余地はないんですか?」
「そういう属性なんだよ!」
ならどうか。
「会社の外に持っていくマシンにHDD暗号化ソフトを入れなさい、って言いますけどこんなもん入れてOS起動できなくなっりとか危なくないんですか?」
「それはポリシーだから従ってほしい」
ではなくて、
「会社の外に持っていくマシンにHDD暗号化ソフトを入れなさい、って言いますけどこんなもん入れてOS起動できなくなっりとか危なくないんですか?」
「それはそういう属性だから」
ならどうか。
冗談です。
*1 キャラ、キャラクターという言葉自体に属性が含まれてしまっているような気もするし、そもそも属性萌えという用語の使い方が間違っている気もひしひしとするのだけど、現役オタクじゃないのでご容赦を。……退役オタクって言葉はあるのだろうか?

