使用别的高级语言,例如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。