21時27分31秒やっぱメソッドを文字列で指定するのはねぇ。)とかって、文字列ベースで呼び出すのはなんとなく落ち着かない。JavaScript使ってるのに引数の数が束縛されるのも個人的には落ち着かない。ラッパーを作ってみることにした。prototype.jsと、String.format、さらにEnumeratorのEnumerable化が前提だが、こんな感じ。);}}ごめんなさい。クラス名がベタなのは勘弁してください。使い方インスタンスの生成パラメータなしでnewするだけ。VBScript;関数・プロシージャの追加addFunctionメソッドを使用する。パラメータにはVBSコードを直接渡す。);この例では、Functionプロシージャを1つ登録しているだけだが、1回のaddFunction()で一気に複数のプロシージャを食わせることができる。試していないが、.vbsファイルを読み込んで直接流し込むことができると思う。関数・プロシージャの呼び出し以下のように、VBSコードで定義したプロシージャ名・関数名をそのままVBScriptインスタンスのメソッド名として呼び出せる。);VBSの定義より引数が多い場合は自動的に切り詰められ、少ない場合はundefined(多分VBSではNothing扱い)が渡されるので、引数の数によるエラーは発生しない。ちなみに、VBS側がSubプロシージャで登録されていた場合、実行結果は当然undefinedになる。注意点とか、制限とかプロシージャ名にVBSの組み込み関数名を使用してはいけない。MsgBox~」のようなコードを与えると、無限再帰呼び出しになってコールスタックを食いつぶすので注意(VBSはcase-sensitivityではないのでこれまた注意!)VBS側で参照可能な変数を与える方法がわからない。addFunction()に渡すコード中に含めればよいが、その変数をJS側で知覚する術がない。VBScriptクラスのメンバ名と同じプロシージャ名を使用してはいけない。原理的にはVBS実行環境内のプロシージャオブジェクトを列挙して、その名前をVBScriptインスタンスのメソッド名に流用しているため、「addFunction」なんて名前のプロシージャを定義したコードを食わせるとそれ以降VBSコードの追加ができない。最後に長いサンプルをいろいろとライブラリ依存になっているため、VBScriptクラスのコードだけ載せても試せないから、過去のエントリからかき集めてマージしたサンプルコードを示す。あ、dummy.jsとprototype.jsは同じディレクトリに設置してください。);}}}たぶん、こんなんでよろこんでるの俺だけだろうなぁ。NaNを見つける役に立たないテクニックほかという記事を見つけた。false」とは知らんかった!!2を使いたい誘惑に駆られるけど、さすがにアレなのでと書かれているが、dara-j的には2でしょう!これ、かっこいいよ。他にも文字列足したり、Infinity足したり、いろいろ考えつくなぁ、と感心することしきり。蛇足しかし、id:trickstar_osさんはといいたいところなんですが、このページ(はてな)でやるとprototype.jsのArray拡張がうざい。)みたいにワンライナー(ちょっと長いか)で書けるところがよいと思うんだけどなぁ。22時31分57秒このエントリは中身がほとんどありません。'string';と文字列リテラルを単一引用符で囲っているのを見かける。"string";と2重引用符を使用している。"bgcolor=\"red\"";とエスケープまでしてしまう。これはこれで可読性を落とすのでどうかと自分でも思うが。どっちが王道なのかと思い検索はしてみるものの、「単一引用符または2重引用符で~」みたいな話しか見つからない。どっちが王道なのかなぁ。だれか教えてください。よい検索キーワード教えてください。それがわかったところでどうだという話ではないんだけどね。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。