JavaScript版本的問題:
在開發過程中經常會碰到一些版本問題,在看一些文章的時候經常沒有說明一下啟動並執行環境及相關的軟體版本等,可能造成很大的誤解。
目前常用的版本是JavaScript1.2,如 <SCRIPT LANGUAGE="JavaScript1.2"></script>,如果沒有寫版本號碼,預設按最高的版本運行。如:<SCRIPT LANGUAGE="JavaScript"></script>
還有兩個版本是 <SCRIPT LANGUAGE="JavaScript1.0"></script>和<SCRIPT LANGUAGE="JavaScript1.1"></script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 指令碼測試視窗 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
var homer = {name:'adfsadf',age:34,married:true} //這種建立對象的方式只適用於1.1及以後的版本。
function Rectangle(w,h)//建構函式
{
this.width = w;
this.height = h;
return null; //這行可以不寫。(測試用)如果在1.0版本中,建構函式傳回值後,後面的ret1就是null了,當取ret1.width的時候就會報錯。
}
function Test(obj)
{
//delete homer.name;//在1.2版本中新增加的功能,可以完成把這個屬性刪除。以前的版本只能實現homer.name=null 的效果。
// for(var i in homer)
// {
// alert(i);
// }
var ret1 = new Rectangle(11,12);
alert("測試成功!"+ ret1.width + "|"+ ret1.height);
var ret2 = new Rectangle(13,12);
alert("測試成功!"+ ret2.width + "|"+ ret2.height);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" name="btn1" value="測試" onclick="Test(this);">
</BODY>
</HTML>
方法:
在1.0的時候只能這樣定義對象的方法:
function Rectangle(w,h)//建構函式
{
this.width = w;
this.height = h;
this.area = compute_area;//在1.0的時候只能這樣寫或者這樣寫@1
return null; //這行可以不寫。(測試用)如果在1.0版本中,建構函式傳回值後,後面的ret1就是null了,當取ret1.width的時候就會報錯。
}
function compute_area()
{
return this.width * this.height;
}
function Test(obj)
{
var ret1 = new Rectangle(11,12);
ret1.area = compute_area; //在1.0的時候只能這樣寫或者這樣寫:查看@1
alert("測試成功!"+ ret1.width + "|"+ ret1.height + "|"+ret1.area()+ "|"+ret1.area);
var ret2 = new Rectangle(13,12);
alert("測試成功!"+ ret2.width + "|"+ ret2.height);
}
1.1以後引入了更好的方法(引入了原型對象的概念相當於繼承類): prototype屬性可以設定為適當的對象。增加了以原型對象為基礎的繼承機制,具備了物件導向語言的三個特性(封裝、繼承、多態)所以說javascript也是一種物件導向的語言。只是不同於java和C++等以類為基礎的繼承機制。
Java中有一條常用的約定,那就是命名類時以大寫字母開頭,命名物件時以小寫字母開頭。JavaScript也可以沿用這一規則。定義類的時候第一個字母都用大寫的字母,建立類的執行個體的時候第一個字母都是小寫。