定义
无序的数据集合,由若干个键值对(key: value)组合而成
JavaScript中的所有数据都可以被视为对象
生成对象方法
-
大括号{ }
简洁明了
var obj1 = {};
-
new命令
采用构造函数的写法清晰地表示了意图
var obj2 = new Object();
-
Object.create
一般用在需要对象继承的场合
var obj3 = Object.create(null);
键值对(成员)
组成
由键名(key)和键值(value)组成
key: value
var person = {
name: 'Sumi',
age: '21',
height: '180',
weight: '150',
'girl-friend': 'null' //注意这里girl-friend加上了引号,下面会说明原因
}
大括号{}
定义了一个对象,它被赋值给变量person
大括号中一共包含5个键值对,它们之间用逗号,
分隔
键值对中的键名(key)和键值(value)用冒号:
分隔
对象中的最后一个键值对后面逗号可加可不加,优缺点待考究,一般情况是不加逗号的
键名(key)(成员名称)
所有键名均为字符串,可以加引号也可以不加引号
//上面的代码也可以表示为这样
var person = {
'name': 'Sumi',
'age': '21',
'height': '180',
'weight': '150',
'girl-friend': 'null'
}
如果键名不符合标识符命名规则,则一定要加引号,否则会报错
var obj = {
'girl-friend': 'null', //这里的girl-friend中包含了标点符号,不符合标识符命名规则,故需要加引号
'1p': "Hello World", //这里键名以数字开头,不符合标识符命名规则,故需要加引号
'h w': "Hello World" //这里键名中包含了空格,不符合标识符命名规则,故需要加引号
}
注意:JavaScript中的保留字可以不加引号当做键名
var obj = {
for: 1,
class: 2
}
键值(value)(成员的值)
键值可以为任意数据类型
var obj = {
fn1: function(){
alert(1);
},
true,
fn2: function(){
alert(2);
}
}
属性
对象中每一个键值对的键名又可称为对象的属性
如果属性的值(键值)为一个函数,那么也可以把这个属性称为方法
var obj = {
fn1: function(){
alert(1); //对象obj含有一个方法fn1
},
fn2: function(){
alert(2); //对象obj含有一个方法fn2
}
}