首頁  >  文章  >  web前端  >  javascript創建物件的方法有哪些

javascript創建物件的方法有哪些

青灯夜游
青灯夜游原創
2021-06-29 18:24:403606瀏覽

建立方法:1、使用「var 物件名稱={屬性名稱1:值1,屬性名稱2:值2,...};」語句;2、使用「var 物件名稱= new 建構函數名稱(args);”語句;3、使用“Object.create(原型物件,descriptors)”語句。

javascript創建物件的方法有哪些

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

在 JavaScript 中建立物件的方式有3 種:

  • #物件直接量

  • 建構物件

  • 使用Object.create

#物件直接量

使用直接量可以快速創建對象,也是最有效率、最簡單的方法。具體用法如下:

var objectName = {
    属性名1 : 属性值1,
    属性名2 : 属性值2,
    ...
    属性名n : 属性值n
};

在物件直接量中,屬性名稱與屬性值之間透過冒號進行分隔,屬性值可以是任意類型的數據,屬性名稱可以是JavaScript 標識符,或是字串型表達式。屬性於屬性之間透過逗號分隔,最後一個屬性結尾不需要逗號。

範例

下面程式碼使用物件直接量定義兩個物件。

var o = {  //对象直接量
    a : 1,  //定义属性
    b : true  //定义属性
}
var o1 = {  //对象直接量
    "a" : 1,  //定义属性
    "b" : true  //定义属性
}

建構物件

使用 new 運算子呼叫建構函數,可以建構一個實例物件。具體用法如下:

var objectName = new functionName(args);

參數說明如下:

  • objectName:傳回的實例物件。

  • functionName:建構函數,基本上與普通函數相同,但不需要 return 傳回值,傳回實例對象,在函數內可以使用 this 預先存取。

  • args:實例物件初始化配置參數清單。

範例

以下範例使用不同類型的建構子定義各種實例。

var o = new Object();  //定义一个空对象
var a = new Array();  //定义一个空数组
var f = new Function();  //定义一个空函数

使用 Object.create

#Object.create 是ECMAScript 5 新增的靜態方法,用來建立一個實例對象。此方法可以指定物件的原型和物件特性。具體用法如下:

Object.create(prototype, descriptors)

參數說明如下:

  • prototype:必須參數,指定原型對象,可以為 null。
  • descriptors:可選參數,包含一個或多個屬性描述符的 JavaScript 物件。屬性描述符包含資料特性和存取器特性,其中資料特性說明如下。
  • value:指定屬性值。
  • writable:預設為 false,設定屬性值是否可寫入。
  • enumerable:預設為 false,設定屬性是否可列舉(for/in)。
  • configurable:預設為 false,設定是否可修改屬性特性和刪除屬性。 

存取器功能包含兩個方法,簡單說明如下:

  • set():設定屬性值。

  • get():傳回屬性值。

範例

下面範例使用Object.create定義一個對象,繼承null,包含兩個可枚舉的屬性size 和shape,屬性值分別為"large " 和"round"。

var newObj = Object.create (null, {
    size : {  //属性名
        value : "large",  //属性值
        enumerable : true  //可以枚举
    },
    shape : {  //属性名
        value : "round",  //属性值
        enumerable : true  //可以枚举
    }
});
console.log(newObj.size);  //large
console.log(newObj.shape);  //round
console.log(Object.getPrototypeOf(newObj));  //null

【相關推薦:javascript學習教學

#

以上是javascript創建物件的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn