2011-02-14 50 views
3

C#有一個真棒句法特徵,其中,爲期望的委託類型的函數,則可以在一個「方法組」通,像這樣:「方法組」 - Javascript中的大寫語法?

"string".Count (Char.IsWhiteSpace); 

而不是(相對而言)嘈雜:

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

(編輯:更好的例子)。

我想這樣做在Javascript類似的事情,這對匿名函數遠喧鬧的語法:

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

我曾與各種嘗試和參數置換到String.prototype.replace功能形式玩耍了,使用callapply,但在(c在上面的例子中)傳遞的字符串參數顯然不是thistoUpperCase範圍內(我在最好的情況下結束了一個不太有用的DOMWINDOWoobar,並且TypeError最差)。

很明顯,我可以像上面那樣包裝功能,生活可以繼續下去,但無論如何要做類似於方法組應用程序,或傳遞該功能,以便在匹配的字符上正確調用該功能嗎?

+2

你不能** **不是一個方法組在C#中,如上所述(`!IsNullOrEmpty`)。 – 2011-02-14 21:51:55

+0

哈,好電話,對不起! – 2011-02-14 22:20:36

回答