Javascript 为所有数组元素调用函数,但不将项作为参数传递
在javascript中,我可以做到这一点:Javascript 为所有数组元素调用函数,但不将项作为参数传递,javascript,ruby,Javascript,Ruby,在javascript中,我可以做到这一点: var show = function(w) { alert(w); }; var words = ['a', 'b', 'c']; words.forEach(show); 注意,我不需要将数组项作为参数传递 在ruby中有没有同样的方法 比如: 附言: 我知道我可以这样做:words.each{w|show(w)}。问题是我是否可以像在javascript中一样,不将项作为参数传递。当然,可以像在ECMAScript中一样通过传递方法来
var show = function(w) {
alert(w);
};
var words = ['a', 'b', 'c'];
words.forEach(show);
注意,我不需要将数组项作为参数传递
在ruby中有没有同样的方法
比如:
附言:
我知道我可以这样做:
words.each{w|show(w)}
。问题是我是否可以像在javascript中一样,不将项作为参数传递。当然,可以像在ECMAScript中一样通过传递方法来实现:
words.each(&method(:show))
请注意,这是使Ruby示例正常工作的方法。然而,Ruby方法并不是Ruby中最接近ECMAScript函数的类似物。Proc
实际上是更接近的匹配:
show = -> w { puts w }
words.each(&show)
这实际上与ECMAScript 6版本非常接近:
const show = w => alert(w);
words.forEach(show);
当然,可以通过传递方法来完成,就像在ECMAScript中一样:
words.each(&method(:show))
请注意,这是使Ruby示例正常工作的方法。然而,Ruby方法并不是Ruby中最接近ECMAScript函数的类似物。Proc
实际上是更接近的匹配:
show = -> w { puts w }
words.each(&show)
这实际上与ECMAScript 6版本非常接近:
const show = w => alert(w);
words.forEach(show);
谢谢很高兴知道:)或使
显示
一个lambda并说出单词。每个(&show)
。这可能与JavaScript版本更接近。很好,Jörg。早起,嗯?@muistoshort:你说得对,我太专注于让OP的例子发挥作用了。补充说,谢谢。很高兴知道:)或使显示
一个lambda并说出单词。每个(&show)
。这可能与JavaScript版本更接近。很好,Jörg。早起,嗯?@muistoshort:你说得对,我太专注于让OP的例子发挥作用了。补充。