JavaScript中类似于"Method group"的语法?

4

C#有一个非常棒的语法特性,对于一个期望委托类型的函数,你可以传入一个“方法组”,如下:

"string".Count (Char.IsWhiteSpace);

相对而言比较嘈杂的,

"string".Count (c => Char.IsWhiteSpace (c));

(编辑:更好的示例)。

我想在Javascript中做类似的事情,但匿名函数的语法更加嘈杂:

var name = "foobar".replace (/^\w/, function (c) { return c.toUpperCase (); });

我曾尝试过使用callapply的函数形式,并对其参数进行各种尝试和排列组合,但是传入的字符串参数(上面示例中的c)显然不是toUpperCase内部范围内的this(在最好的情况下,我得到了一个不太有用的DOMWINDOWoobar,在最坏的情况下则是TypeError)。
显然,我可以像上面那样包装函数,然后继续生活,但是否有一种类似于方法组应用或将该函数传递进去的方式,以便正确调用匹配字符上的函数?

2
在C#中,您不能像上面那样(!IsNullOrEmpty)使用方法组。 - Kirk Woll
1个回答

0

你确定那个没问题吗?我得到的是“undefinedoobar”。 - Matt Enright

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接