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 だろう、という割り切りでしょうか?