其實 MSDN 的 VBScript 文檔中關于 Function 和 Sub 語句的部分提到過 Default 關鍵字: 復制代碼 代碼如下: Default Used only with the Public keyword in a Class block to indicate that the Function procedure is the default method for the html' target='_blank'>class. An error occurs if more than one Default procedure is specified in a class.
Default 只能在 Class 語句塊中與 Public 關鍵字一起使用來表明函數過程是類的默認方法。如果類中一個以上的過程被定義為 Default,那么會出現錯誤。 一個簡單的例子: 復制代碼 代碼如下: Class MyClass Public Default Function SayHello(name) SayHello = "Hello, " & name End Function End Class Set o = New MyClass MsgBox o("demon")
很多面向對象的語言都能使用構造函數來初始化類的對象,但是 VBS 卻沒有構造函數的概念,只是提供了一個類初始化事件來初始化對象: 復制代碼 代碼如下: Class TestClass ' Setup Initialize event. Private Sub Class_Initialize MsgBox("TestClass started") End Sub ' Setup Terminate event. Private Sub Class_Terminate MsgBox("TestClass terminated") End Sub End Class ' Create an instance of TestClass. Set X = New TestClass ' Destroy the instance. Set X = Nothing
雖然看起來很像構造函數,但是卻不能帶參數,沒有辦法像其他語言那樣用特定的參數來初始化對象。 有了 Default 關鍵字之后,我們可以模擬實現構造函數的功能: 復制代碼 代碼如下: 'Author: Demon 'Date: 2011/09/29 'Website: http://demon.tw Class Rectangle Private height, width Public Default Function Construtor(h, w) height = h : width = w Set Construtor = Me End Function Public Property Get Area Area = height * width End Property End Class '看起來是不是很像構造函數呢 Set r = (New Rectangle)(6, 8) MsgBox r.Area