使用别的高级语言,例如VB.NET,C#.NET,VC+6.0之后,对于类很喜欢,而在学习Javascript的初期,也曾经因为没有类而感到纠结。
在经过一段时间的摸索后,发现了Javascript类的使用方法,这里和大家分享一下。
通过一个例子,来看看JavaScript类和VB.NET类的区别与联系。
下面有一个例子,是一个VB的类,用于显示信息框:
Public Class Message Public msgInfo As String = "" Public Sub ShowMessage() MsgBox(msgInfo) End Sub Public Sub ShowMessage(ByVal newMessage As String) msgInfo = newMessage MsgBox(msgInfo) End Sub End Class同样用一个JavaScript的类,来显示信息框:
function Message() { this.msgInfo = ""; this.ShowMessage = function(newMessage) { if (!newMessage) { //如果没有参数 alert(this.msgInfo); } else { //如果有参数 msgInfo = newMessage; alert(msgInfo); } } } function onBtnMessageClick() { var oMessage = new Message(); oMessage.msgInfo = "one way"; oMessage.ShowMessage(); oMessage.ShowMessage("hi,way two"); }
对比之后,我们可以得到这样的几点认识:
1、JS中,function可以被new 成一个对象,所以也可以将这个函数称之为“函数类”
2、JS中的成员变量,需要用“this.”来标价,在被成员函数引用的时候,也需要使用“this.”+变量名,来引用。
3、JS中,所有的参数都是可选的,可以通过这个方法来模拟函数的重载
调用函数的时候,如果没有传递参数,则这儿参数列表中对应的变量的值就是undefined。