在 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
			
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
评论(0)