建立對象(Create Object)__JavaScript編程筆記

來源:互聯網
上載者:User

在JS中,建立對象(Create Object)並不完全是我們時常說的建立類對象,JS中的對象強調的是一種複合類型,JS中建立對象及對對象的訪問是極其靈活的。

JS對象是一種複合類型,它允許你通過變數名儲存和訪問,換一種思路,對象是一個無序的屬性集合,集合中的每一項都由名稱和值組成(聽起來是不是很像我們常聽說的HASH表、字典、健/值對。),而其中的實值型別可能是內建類型(如number,string),也可能是對象。

一、由一對大括弧括起來      var  emptyObj  =  {};
     var  myObj  =
    {
         ' id ' :  1 ,         // 屬性名稱用引號括起來,屬性間由逗號隔開
         ' name ' :  ' myName '
    };
     // var m = new myObj(); //不支援     不知你注意到對象都是用 var 聲明的沒有,像上面的代碼,就只是簡單的聲明一個對象,它只有一份拷貝,你不能像執行個體化類對象一樣對它採用new操作,像上面代碼的注釋部分。這樣就極大的限制了對象的重用,除非你建立的對象只需要一份拷貝,否則考慮用其他方法建立對象。   下面一起看看如何訪問對象的屬性和方法。      var  myObj  =
    {
         ' id ' :  1 ,
         ' fun ' :  function () {
            document.writeln( this .id  +   ' - '   +   this .name); // 以"對象.屬性"方式訪問
        },
         ' name ' :  ' myObj ' ,
         ' fun1 ' :  function () {
            document.writeln( this [ ' id ' ]  +   ' + '   +   this [ ' name ' ]); // 以集合方式訪問
        }
    };
    myObj.fun();
    myObj.fun1();
     //  結果
     //  1-myObj 1+myObj  二、用 function 關鍵字類比 class 在 function 中用 this 引用當前對象,通過對屬性的賦值來聲明屬性。如果用var聲明變數,則該變數為局部變數,只允許在類定義中調用。          function  myClass() {
             this .id  =   5 ;
             this .name  =   ' myclass ' ;
             this .getName  =   function () {
                 return   this .name;
            }
        }
         var  my  =   new  myClass();
        alert(my.id);
        alert(my.getName());
         //  結果
         //  5
         //  myclass 三、在函數體中建立一個對象,聲明其屬性再返回 在函數體中建立對象可利用第一點的方法,或先 new Object(); 再為各屬性賦值。 不過用這種方式建立的對象在VS2008 SP1中是沒有智能提示的。          function  myClass() {
             var  obj  =
            {
                 ' id ' : 2 ,
                 ' name ' : ' myclass '
            };
             return  obj;
        }
         function  _myClass() {
             var  obj  =   new  Object();
            obj.id  =   1 ;
            obj.name  =   ' _myclass ' ;
             return  obj;
        }
         var  my  =   new  myClass();
         var  _my  =   new  _myClass();
        alert(my.id);
        alert(my.name);
        alert(_my.id);
        alert(_my.name);

         //  結果
         //  2
         //  myclass
         //  1
         //  _myclass 分類:  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.