一、创建对象的三种方法
1.使用构造函数创建对象
2.使用对象直接量创建对象
3.使用creat()方法创建对象
二、使用构造函数创建对象
1.公式
var objectName = new functionName(args);
/*
objectName表示构造的示例对象
functionName表示构造函数
args表示参数列表
*/
2.内置构造函数
Object: 使用Object构造函数创建的对象是一个不包含任何属性和方法的空对象
Array、Function、RegExp、String:使用以上构造函数创建的对象将会继承该构造函数的属性和方法
3.构造函数的特性
- 使用new运算符进行调用,也可以用小括号调用,但返回值不同。
- 构造函数内部通过this关键字指代实例化对象,或者指向调用对象。
- 构造函数内部可以通过点运算符声明本地成员,结构体内也可以包含私有变量或函数,以及任意执行语句。
4.构造函数和普通函数的区别
- 构造函数的类名首字母大写(非强制的)
- 构造函数没有返回值
三、使用对象直接量创建对象
1.公式
var ObjectName={
属性名:值,
属性名:值,
...
}
//说明
//属性名与属性值之间通过冒号进行分隔,属性与属性之间通过逗号进行分隔,最后一个属性末尾不需要逗号
//属性名可以是JavaScript标识符,或者任意形式的字符串
//属性值可以是任意类型的数据
2.使用对象直接量创建对象的特殊形式
- 属性值是函数
var o={
a:function(){
return 1;
}
}
alert(o.a());//属性变为对象的方法,附加小括号调用
- 属性值是对象
var o={
a:{
b:1
}
}
alert(o.a.b);//连续使用点号运算符读取内层对象的属性值
- 属性值是数组
var o={
a:[1,2,3]
}
alert(o.a[0]);//使用下标来读取属性包含的元素值
三、使用create()方法创建对象
1.公式
Object.create(prototype,descriptors)
//prototype:必须参数,需要作原型的对象,可以为NULL
//descriptors:可选参数,包含一个或多个属性描述符的JavaScript对象
//descriptors种,数据属性是可获取且可设置值的属性,数据属性描述符包含value特性,writable(是否可修改属性值)、enumerable(是否可枚举属性)和configurable(是否可修改特性和删除属性)
2.示例
var newObject = Object.create(null,{
size:{
value:"large",
enumerable:true},
shape:{
value:"round",
enumerable:true
}
});
document.write(newObject.size+"<br/>");
document.write(newObject.shape+"<br/>");
document.write(Object.getPrototypeOf(newObject));
//本例使用Object.create()创建一个对象,它继承自null,即把null作为原型。该对象包含两个可枚举的属性size和shape,属性值分别为"large"和“round”