Enumerable.invoke - Prototype JavaScript 框架

Xunxin Prototype API

invoke

invoke(methodName[, arg...]) -> Array

eachcollect 的一种常见应用情形进行优化:需要使用同一个方法并具有一致的参数来处理 Enumerable 中的每一个元素。 返回调用指定方法后的结果集。

因为它避免了因使用匿名函数(如 eachcollect 方法的做法)而产生的语法闭包的开销,因此具有较好的执行效率。

或许更重要的是它使你的源代码变得更为简捷明了。

样例

['hello', 'world', 'cool!'].invoke('toUpperCase') 
// ['HELLO', 'WORLD', 'COOL!'] 
['hello', 'world', 'cool!'].invoke('substring', 0, 3) 
// ['hel', 'wor', 'coo'] 
// 当然,它也可以应用于 Prototype 的扩展方法 
$('navBar', 'adsBar', 'footer').invoke('hide') 
// 因为 Prototype 的扩展方法大多返回元素本身
// 因此也可以链式的调用“invoke”:
$$('#windows div.close').invoke('addClassName', 'active').invoke('show'); 

参见

pluck 方法用于获取相同的属性值集合。