invoke
invoke(methodName[, arg...]) -> Array
对 each 或 collect
的一种常见应用情形进行优化:需要使用同一个方法并具有一致的参数来处理 Enumerable
中的每一个元素。
返回调用指定方法后的结果集。
因为它避免了因使用匿名函数(如 each 和 collect 方法的做法)而产生的语法闭包的开销,因此具有较好的执行效率。
或许更重要的是它使你的源代码变得更为简捷明了。
样例
['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 方法用于获取相同的属性值集合。