有些人可能知道JScript.NET爲常見的JavaScript語言添加了不少功能......它增加了一些class
語法,一些類型標識符等等等等。使用JScript 5.5而不是JScript.NET編寫應用程序
我使用JavaScript的主要原因是因爲我喜歡它是如何動態的,嵌套的函數調用,變量作用域等等......所有這些功能在.NET版本中似乎都能正常工作,但是編寫這樣的代碼給了我Type mismatch
錯誤:
public class Test extends Form {
var btn : Button;
function Test() {
var anotherBtn = new Button;
anotherBtn.Text = "some text";
// This is where the Type mismatch happens
anotherBtn.add_Click(function(sender:Object, e:System.EventArgs) {
Close();
});
this.Controls.Add(anotherBtn);
}
}
Application.Run(new Test);
看來我不能傳遞這樣的匿名函數。如果我在課堂上的某個地方定義了add_Click
回調,那麼效果很好!
我該如何避免這種情況?我想以我慣用的方式在JavaScript中編寫代碼...我能以某種方式強制編譯器使用舊版本的JScript嗎?
或者class
內的函數不是常規的JS函數嗎?這是怎麼回事?
謝謝,這很有幫助。在將您標記爲已接受之前,我會等待其他一些輸入。 – 2010-09-13 14:13:54
有沒有一種方法來定義委託內聯而不創建新的類方法? – 2011-05-18 07:25:46
@Luca:我不認爲現在有什麼方法可以實現它。雖然你可以創建自己的類來模擬添加事件的行爲。 – pepkin88 2011-05-20 16:32:04