理順 JavaScript (13) – 對象及 json

來源:互聯網
上載者:User
和 Delphi/C# 類似, JavaScript 中所有對象的祖先是 Object, 雖然並不是全部物件導向的, 好像也是基於對象的.
譬如一個字串類型(string)變數, 可以使用字串對象(String)的屬性和方法, 那是在調用的一瞬間轉換成了對象.

建立原始Null 物件的兩種方法

var obj1, obj2;obj1 = new Object();obj2 = {};alert(obj1); // [object Object] - 屬於 Object 類的 objectalert(obj2); // [object Object]//上面兩種方法建立的對象都可以使用以下六個方法(不如說是抽象方法):hasOwnPropertyisPrototypeOfpropertyIsEnumerabletoLocaleStringtoStringvalueOf//Object 像不像個介面? 像也不像, 因為以上方法它並不強迫子類實現.//現在應該讓人立馬想起空數組的兩種建立方法:var arr1, arr2;arr1 = new Array();arr2 = [];//Array 作為 Object 的子類, 繼承或重新實現了上面方法, 並且增加了 sort 等更多數組專用的方法.//一個是 {}、 一個是 [], 很有意思; 更有意思的是它們可以互相包含.

定義自己的對象

//已存在 Array、Number、Date、RegExp 等實用的類(或叫對象模板), 如果構建自己的類呢?//很簡單, 但不好理解:function Rectangle(w, h) {  this.w = w;  this.h = h;}/* 執行個體化一個 */var myObj = new Rectangle(11, 22);alert(myObj.w); //11alert(myObj.h); //22alert(myObj);   // [object Object]//可以看出 myObj 就是一個對象了; 在 js 中函數也是對象, 並且有一個 Function 類存在.//可以在 Rectangle(函數? 類?) 的基礎上繼續添加更多方法或屬性, 這是後話.

JavaScript Object Notation - json

//js 用 {} 標識對象的方法(JavaScript Object Notation)被簡稱為 json;//說到 json, 佩服其的設計者, 本來是語言中描述對象的一種規則, 現在竟被推崇為超越 XML 的資料格式.var obj = {name:'張三', age:88, marriage:true};//{} 中的資料用 , 號隔開, 每個資料又是 Name : Value 的形式;// : 前面的標識符是比不可少的, 它將是對象的屬性或方法等, 它也可以在引號中, 也支援中文./* 訪問 Value 方法一 */alert(obj.name);     //張三alert(obj.age);      //88alert(obj.marriage); //true/* 訪問 Value 方法二 */alert(obj['name']);     //張三alert(obj['age']);      //88alert(obj['marriage']); //true/* 遍曆 Value */for (var k in obj) {  alert(obj[k]);      //張三 / 88 / true}/* 遍曆 Name */for (var k in obj) {  alert(k);           //Name / age / marriage}//對象還可以繼續包含對象, 再連同數組互相嵌套, 因而 json 能表達非常複雜的資料結構.

給自訂的類添加方法

var obj = {  name : '張三',   age : 88,   marriage: false,  info: function() {return this.name + '今年 ' + this.age + ' 歲, ' + (this.marriage ? '已經結婚了.' : '至今未婚.')}};alert(obj.info());    //張三今年 88 歲, 至今未婚.alert(obj['info']()); //張三今年 88 歲, 至今未婚.obj.name = '李四';obj.age = 18;obj.marriage = true;alert(obj.info()); //李四今年 18 歲, 已經結婚了.//還有其他方法, 後續.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.