prototype.js の Enumerable.invoke と Enumerable.pluck

昨日の記事 [id:gakuzo:20090403:1238715610] に書いた callMethod ですが、似たような発想のメソッドが prototype.js には用意されているようですね。

昨日の例だとこんな使い方ができるようです。

customers.map(callMethod("isOver", 30)); // このコードが
customers.invoke("isOver", 30);          // この様に書き直せます。

customers.map(getProperty("name"));      // プロパティアクセスは
customers.pluck("name");                 // というメソッドが用意されています。

ただ、完全に map に限定していますね。

customers.filter(callMethod("isOver", 30));

上記のようなコードの書き換えはできないようです。一番使うのは map だろう、という割り切りでしょうか?