JavaScript物件導向編程筆記

來源:互聯網
上載者:User

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也可以沿用這一規則。定義類的時候第一個字母都用大寫的字母,建立類的執行個體的時候第一個字母都是小寫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.