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
功能形式玩耍了,使用call
和apply
,但在(c
在上面的例子中)傳遞的字符串參數顯然不是this
在toUpperCase
範圍內(我在最好的情況下結束了一個不太有用的DOMWINDOWoobar
,並且TypeError
最差)。
很明顯,我可以像上面那樣包裝功能,生活可以繼續下去,但無論如何要做類似於方法組應用程序,或傳遞該功能,以便在匹配的字符上正確調用該功能嗎?
你不能** **不是一個方法組在C#中,如上所述(`!IsNullOrEmpty`)。 – 2011-02-14 21:51:55
哈,好電話,對不起! – 2011-02-14 22:20:36