それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

JavaScriptで可変関数

PHPの可変関数はちょっと便利なので、同じようなリレフレクションというか、メタプログラミングをやりたかった。
(スクリーンショット 2013-05-25 19.19.05)

文字列で指定して関数を実行

var f = console["log"]
f(1234) #=> 1234

これは、オブジェクトであることを利用している

window["alert"](111)

のようにしてもOK.

node の場合

#!/usr/bin/env node

path = require('path');
str =   process.argv[2];
name = process.argv[1];
name =  path.basename(name) ;
console.log(global[name](str));

このようにすると global にある関数をコマンドラインから利用できる。

また、関数Objectはcall メソッドでも大丈夫

var f = console["log"]
f.call(console,1234) #=> 1234

call 意外とデキる子

2013-05-26修正

f.call(f,1234) #=> 1234
f.call(console,1234) #=> 1234

修正しました。

広告を非表示にする