对象
JavaScript的简单数据类型包括数字、字符串、布尔值、null值和undefined值,其他所有的值都是对象,在JavaScript中,对象是可变的键控集合,数组是对象,函数是对象,正则表达式是对象,当然,对象自然也是对象。
对象是属性的容器,其中每个属性都有名字和值,属性的名字可以是包括空字符串在内的任意字符串,属性值可以是除undefined值之外的任何值。
创建对象
1,对象字面量
对象字面量提供了一种非常方便的创建新对象值的表示法。一个对象字面量就是包围在一对花括号中的零或多“名/值”对,属性名可以是包括空字符串在内的任何字符串。如果属性名是一个合法的JavaScript标识符(由字母、下划线或美元符开头,后面添加字母、数字或下划线的标识符)且不是保留字,则并不强制要求使用引号括住属性名。逗号用来分隔多个“名/值”对。(在ECMAScript5中,保留字可以用作不带引号的属性名,然而对于ECMAScript3来说,使用保留字作为属性名必须使用引号引起来,在ECMAScript5中,对象字面量的最后一个属性后的逗号将忽略,在ECMAScript3中的大部分实现中也可以忽略这个逗号,但是在IE中则报错)。
var empty = {}; //没有任何属性的对象
var p = {
first_name:‘li‘, //(_)下划线是合法的
‘last-name‘:‘mei‘, //(-)连接符是不合法的,必须用字符串表示
‘father name‘:‘lili‘, //属性名中有空格,必须用字符串表示
‘for‘:‘all‘ , //"for"为保留字,必须用引号
age:23,
height:180,
like:{
food:‘水果‘,
sports:‘跑步‘
}
};
2,Object.create()
ECMAScript5定义了一个名为Object.create()的方法,它创建一个新对象,第一个参数就是这个对象的原型,第二个可选参数用以对对象的属性进行进一步描述。Object.create()是一个静态函数,而不是提供给某个对象调用的方法,使用很简单,只需传入所需的原型对象即可。
var a = Object.create({x:1,y:2}); //a继承了属性x和y
var b = Object.create(null); //b不能继承任何属性和方法
var c = Object.create(Object.prototype); //c和new Object()一样
3,通过new创建对象
new运算符创建并初始化一个新对象。关键字new后跟随一个函数调用,这里的函数称为构造函数,构造函数用以初始化一个新创建的对象。
var a = new Object(); //创建一个空对象,和{}一样
var b = new Array(); //创建一个空数组,和[]一样
var c = new Date(); //创建一个表示当前时间的Date对象
var d = new RegExp("js"); //创建一个可以进行模式匹配的正则对象