練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: 関数は .apply() と .call() が使えて、arguments.callee もある

コメントなし»

実は関数に対しては .apply() と .call() が使えるようで、
DMonkey: インスタンス['メソッド名']() で this が Global になる
の例は

a ['p'].apply (a);   // this is Foo
a ['p'].call (a);   // this is Foo

とすれば期待通りの結果を得られました。

この例だと元のメソッドが引数を取らないので違いがありませんが、ECMAScript と同様に
.apply() は引数の配列を受け取り、.call() は最初の引数の後ろに , で並べた引数を受け取ります。

実行中の関数(自分自身の関数)を指す arguments.callee もあります。
typeof arguments.callee == 'function' です。

[6月16日 追記] 残念ながら、組み込みオブジェクトのメソッドには使えないようです。ENameError => member error apply/call になります。