XREA.COM LogoXREA.COM Ad
VxEditor & DMonkey布教ページ -> DMonkey Tips

DMonkey Tips

ここではDMonkeyの小技を紹介します。

内容説明一覧

既存のクラスにメソッドを追加する

「このクラスにこういうメソッドがあったらいいのに」と思うことがあります。
そんな時まず思いつくのがクラスを継承して新しいクラスを作ることですが、メソッドだけ追加するのであれば、prototyepに追加することでも可能です。
下の例は、Stringクラスに指定の文字列が最初から数えて何バイト目にあるかを返すindexOf2メソッドを追加しています。

function _indexOf2(str){ var idx = this.indexOf(str); if(idx!=-1){ idx = this.substring(0,idx).sizeOf(); } return(idx); } String.prototype.indexOf2 = _indexOf2; alert('あああ6789'.indexOf('6',3)); alert('あああ6789'.indexOf2('6',3));

文字列を数値に変換する

'100'」など数値を表す文字列はそのまま数値として扱えます。
'0x100'」のような16進数の値も可能です。
しかし、「'100'+1」のように「+」で足すと、文字列として後ろに追加されてしまいます。
これを回避するには、「+'100'+1」のように文字列の前に「+」をつけます。
これで最初の「'100'」が数値として扱われるようになります。

スクリプトの速度を比べる

二つのコードのどちらが高速かを調べるには、Win32.getTickCount()を使います。

w32=new Win32; tc=w32.getTickCount(); //ここに実行時間を調べたいコードを書く alert(w32.getTickCount()-tc);

外部プログラムを起動し標準入出力をやり取りする

(new ActiveXObject("WScript.Shell")).Exec()メソッドを使います。
下の例はcommandを実行しstrを標準入力に入れresに標準出力を得ます。

var oExec = (new ActiveXObject("WScript.Shell")).Exec(command); oExec.StdIn.Write(str); oExec.StdIn.Close(); res = oExec.StdOut.ReadAll();

一度しか使わないオブジェクトは変数に代入しなくてもいい

RegExpやFileなどの特定のメソッドを一度だけ使いたいというときなどは、いちいち変数に代入しなくても使うことが出来ます。

function fileExists(name){ return((new File(name)).exists()); }

「グローバルオブジェクト」の活用方法


VxEditor & DMonkey布教ページ -> DMonkey Tips