タグ

2008年2月26日のブックマーク (10件)

  • 最速インターフェース研究会 :: Function.prototypeを拡張して遅延実行を実現する

    JavaScriptにおいて関数というのはFunctionオブジェクトで、他のビルトインオブジェクトと同様に、組み込みのメソッドがある。これがapplyとcallしかないのだけれど、こんな感じに使う。 func.apply(thisObj,arguments) func.call(thisObj,arg1,arg2,arg3) thisObjには、その関数内で「this」として使うオブジェクトを指定する。applyの第二引数はargumentsオブジェクトを指定する。配列か、現在実行中の関数のargumentsオブジェクトを丸ごと別の関数に引き渡せる。つまり引数の長さが良くわかってなくても使える。 callは代わりに func.apply(thisObj,[arg1,arg2,arg3]) と書けるので、実はいらないんじゃないかと思う。 これらは多分、ふつうにJavaScriptを書く上で

    kminoru
    kminoru 2008/02/26
    apply関連。まだわけわかめ。。 → 理解した
  • JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptでカリー化。ありがち、つうか実際にあるでしょうね。小ネタと思ってやりはじめたら、意外と混乱した。一種のメタプログラミングのはずだが、実際にはテキスト加工処理。 内容: カリー化ってなに? カリー化を行う関数を作る:準備 カリー化を行う関数を作る:テキストのパッチワーク カリー化を行う関数を作る:組み立て ●カリー化ってなに? 2引数の関数f(x, y)に対して、「gがfのカリー化」だとは、f(x, y) = g(x)(y) が常に成立すること -- ゴチャゴチャ説明するより実例実例: functio sum(x, y) { return x + y; } このsumのカリー化の例: function curried_sum(x) { return function (y) {return sum(x, y);} } curreid_sum関数は1引数で、戻り値として関数

    JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    kminoru
    kminoru 2008/02/26
    apply関連
  • JavaScript で引数束縛: Days on the Moon

    引数束縛 (カリー化) の話。まずは「JavaScriptでカリー化」(檜山正幸のキマイラ飼育記)。タイトルを見てどこかで聞いたような話だなと思ったら「関数の変形」(Effecttive JavaScript - Dynamic Scripting) だった。だが、前者は文字列に戻してから評価というのが力技っぽくて個人的に好きでないし、後者は汎用的過ぎていささかわかりにくい。そこで今回は先頭の引数から束縛していくというのに的を絞ってみたいと思う。 まず第 1 引数のみを束縛する場合。Function#apply を使えば引数を配列として渡せるので、束縛された値と後から渡された引数とを連結してやればいいのではないか。 function curry(func) { return function (first) { return function () { var args = Array.p

    kminoru
    kminoru 2008/02/26
    apply関連
  • 掲示板/JavaScript質問板[過去ログ]/一覧/addListener()やattachEvent()で引数 - TAG index Webサイト

    HTML&CSS Web制作リファレンス - ホームページの構築・運用 -

    kminoru
    kminoru 2008/02/26
    IE では、attachEvent に渡したハンドラ内では this 値が null という、ちょっとありえない事態になる。 > しねる。。 >arguments.callee.listener.handleEvent (event);
  • Visual Web Developer Express で JavaScript デバッグ - アメリカでがんばりましょう

    Web 2.0 なサービスを開発するなら欠かせない JavaScript 。 以前、Mozilla/Firefox 上で動作する JavaScript Debugger エクステンション (Venkman) を 紹介したが、これではブラウザ市場でいまだ過半数を占める IE の場合をカバーできていなかった。 やっかいなことに IE と Firefox で JavaScript の動きが違うなんてことも少なくない。 これまで、IE では Internet Explorer Developer Toolbar (Firefox の Web Developer Toolbar みたいなツール、 地味にアップデートされている) と しばらくメンテされていない Script Debugger を中心に使っていたのだが、この Script Debugger は無いよりマシ程度なツールだった。 (なのでリ

    kminoru
    kminoru 2008/02/26
    よさげだーーーw
  • hide-k.net#blog: vimでJavaScriptを整形

    最近猛烈にJavaScriptを書く機会が増えたのでvimで整形ツール欲しいなと思っていました。 で、YappoさんのJavaScript::Swellを使ってみることにしました。 CPANでインストールしてこんなラッパー作って ~/bin/js_swell.pl #!/usr/bin/perl use strict; use JavaScript::Swell; my $data; while (<>) { $data .= $_; } close IN; print JavaScript::Swell->swell($data); .vimrcかなんかにこんな風に書いたら map ,jt <Esc>:%! ~/bin/js_swell.pl<CR> こんなコードが var i=0;if(i++){var a=-1;} vimから:,jtでこんな風になりました var i = 0; i

    kminoru
    kminoru 2008/02/26
    vimでの整形。perlか。。ここはいっちょpythonで。。map ,jt <Esc>:%! ~/bin/js_swell.pl<CR>
  • vi,emacs,peggyで下記に相当するツールを教えてください。…

    vi,emacs,peggyで下記に相当するツールを教えてください。 1) SQL整形マクロ http://hide.maruo.co.jp/lib/macro/sqlclean104.html 2) PHPコード整形マクロ http://hide.maruo.co.jp/lib/macro/phpcb.html

    kminoru
    kminoru 2008/02/26
    vimでの整形。よくまとまってるよ
  • 83's : vimで段落の整形

    vim6.3でのびぼーろく。 日語の整形に対応していないらしいので、香り屋から gvimを落としてきて、中にあるruntime/plugin/format.vimを~/.vim/pluginにコピー。 ヘルプ(:h formatting)によると、段落の整形にはgq{motion}とgw{motion}がある。 でもコピーしたformat.vimはgqのほうしかサポートしていないみたい(gw{motion}が使えないぽい)。 ここで、{motion}てのは移動系コマンド。例えばgq}とやれば、現在の位置から 段落の最後までが整形対象になる。また、現在の行だけ整形するにはgqqとする。 多分ここで使える特殊なコマンドなんだろうけどapってのがあって、 gqapで現在の段落が整形対象になる。これが欲しかったやつ。 前にビジュアルモードでgqしてたけど、gqapのほうがいいですね。 で、これ、

    kminoru
    kminoru 2008/02/26
    vimでの整形。
  • Vimスクリプトって便利だね

    エディタVimには独自のスクリプト言語が備わっています。 これを使いこなすといろいろなことができます。 漢字コードを変換したり、Vimから辞書をひいたり、 さらに文章の自動整形をしたりもできます。 そんなVimスクリプトの便利さを少しでも伝えることができれば… 文章の自動整形を行なうformat.vim (作:西岡拓洋さん) の使い方を解説することで、 Vimスクリプトの可能性を知ってもらえればと思います。

    kminoru
    kminoru 2008/02/26
    vimでの整形。
  • http://www.tsunematsu.cc/2004/09/30/563/

    kminoru
    kminoru 2008/02/26
    cat test.c | indent > test_indent.c astyle test.c