JavaScript引用類型——Object類型

引用類型的值(對象)是引用類型的一個實例。在ECMAScript中,引用類型是一種數據結構,用于將數據和功能組織在一起。引用類型有時候也被稱為對象定義,因為它們描述的是一類對象所具有的屬性和方法。
對象是某個特定引用類型的實例。新對象是使用new操作符后跟一個構造函數來創建的。構造函數本身就是一個函數,只不過該函數是出于創建新對象的目的而定義的。

var person = new Object();

這行代碼創建了Object引用類型的一個新實例,然后把該實例保存在了變量person中。使用的構造函數是Object,它只為新對象定義了默認的屬性和方法。ECMAScript提供了很多原生引用類型(例如Object)。

Object類型

雖然Object的實例不具備多少功能,但對于在應用程序中存儲和傳聲數據而言,它們確實是非常理想的選擇。
Object是一個基礎類型,其他所有類型都從Object繼承了基本的行為。
創建Object實例的方式有兩種。第一種是使用new操作符后跟Object構造函數,如:

var person = new Object();
person.name = "Icey";
person.age = 25;

另一種方式是使用對象字面量表示法。對象字面量是對象定義的一種簡寫形式,目的在于簡化創建包含大量屬性的對象的過程。如:

var person = {
    name : "Icey".
    age : 25
}

在使用對象字面量語法時,屬性名也可以使用字符串,如:

var person = {
    "name" : "Icey",
    "age" : 25,
    5 : true
}

這里,數值屬性會自動轉換成字符串。

使用對象字面量時,如果留空花括號,則可以定義只包含默認屬性和方法的對象。

var person = {}; 
person.name = "Icey";
person.age = 25;

在通過對象字面量定義對象時,實際上不會調用Object構造函數。

對象字面量也是向函數傳遞大量可選參數的首選方式,例如:

function displayInfo(args) {
    var output = "";
    if (typeof args.name == "string") {
        output += "Name: " + args.name + "\n";
    }
    if (typeof args.age == "number") {
        output += "Age: " + args.age + "\n";
    }
    alert(output);
}

displayInfo({
    name: "Icey",
    age: 25
});

displayInfo({
    name: "Root";
})

一般來說,訪問對象屬性時使用的都是點表示法,不做,在JavaScript中也可以使用方括號表示法來訪問對象的屬性。在使用方括號時,應該將要訪問的屬性以字符串的形式放在方括號中,如:

alert(person["name"]); //"Icey"
alert(person.name); //"Icey"

從功能上看,這兩種訪問對象屬性的方法沒有任何區別,但方括號語法的主要優點是可以通過變量來訪問屬性,如:

var propertyName = "name";
alert(person[propertyName]); //"Icey"

如果屬性中包含會導致語法錯誤的字符,或這屬性名使用的是關鍵字或保留字,也可以使用方括號來訪問屬性,如:

person["first name"]= "Icey";

由于"first name" 中包含一個空格,所有不能使用點表示法來訪問它。然而,屬性名中是可以包含非字母非數字的,這時候就可以是哦那個方括號表示法來訪問它們。
通常,除非必須使用變量來訪問屬性,否則建議使用點表示法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 前言 人生苦多,快來 Kotlin ,快速學習Kotlin! 什么是Kotlin? Kotlin 是種靜態類型編程...
    任半生囂狂閱讀 26,282評論 9 118
  • 本章內容 使用對象 創建并操作數組 理解基本的 JavaScript 類型 使用基本類型和基本包裝類型 引用類型的...
    悶油瓶小張閱讀 697評論 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,896評論 1 10
  • 因為胃不好,醫生叮囑不要再天天在外面吃飯,自己煮點清淡的東西吃,我很苦惱,因為家里的電飯鍋太大,我飯量很少,每次煮...
    我愛一個幼稚鬼閱讀 1,358評論 6 1