以前用.net比較多,近幾年因為開發AJax項目,Javascript也用了比較頻繁,因為要實現一些客戶端的架構,所以使用起來不像以前只是驗證下表單,發現其實js也有一些比較高級的應用,以下就簡單介紹一下JS和.Net有些相似的特性。
.net的一個高級特性“委托”,其實js也有類似的一個功能,不過沒有人稱之為“委托”,以前接觸.net是學習委托時候,感覺有點難懂,後來因為js用多了,發現從JS來理解委托是一個挺簡單的事情,剛好今天看到了文野的“一點一點學ASP.NET”關於>委托的介紹,我就用裡面的內容作為.Net的例子:
namespace MyDelegateTest
{
/// 
/// 說明:一個簡單的委托示例
/// 作者:文野
/// 聯系:stwyhm.cnblogs.com
/// 

// 新建一個用以輸出消息的委托
public delegate void WriteMessage();

public class WriteToWeb
{
// 一個輸出消息的靜態方法
public static void StaticWrite()
{
HttpContext.Current.Response.Write("委托調用了一個靜態方法。
}

// 一個輸出消息的類實例方法
public void Write()
{
HttpContext.Current.Response.Write("委托調用了一個類實例方法。
}
}
}
調用:
protected void Page_Load(object sender, EventArgs e)
{
// 新建一個委托,回調函數是一個靜態方法
WriteMessage wm = new WriteMessage(WriteToWeb.StaticWrite);

WriteToWeb w = new WriteToWeb();
// 新建一個委托並與加到先前建立的委托組成委托鏈,回調函數是一個類實例方法
wm += new WriteMessage(w.Write);

// 執行委托鏈上所有的回調函數
wm();
}