对象数据类型由多组[属性名和属性值]组成,即多组键值对组成,由多个key: value组成。
属性名和属性值是用来描述这个对象特征的。
例如,要定义一个人的基本信息,如果只用基本数据类型,很难将这个人的信息给有效完整的表达,然而使用对象数据类型则可以很方便的表示:
var personInfo = {
name: 'derrick',
age: 20,
height: '180cm',
weight: '70kg'
};
这样就创建好了一个名为personInfo
的对象。
对象有两种创建方式,上述的是创建对象的方式之一,叫做字面量对象创建方式,写法为:
var obj = {
key1: value1,
key2: value2,
...
}
第二种创建对象的方式是实例创建方式,其基本语法如下:
var obj = new Object();
在这种方式下,如果要对对象增加属性,则可以用一下两种方法:
// 方法一:
obj.name = 'derrick';
// 方法二:
obj['name'] = 'derrick';
那如何修改对象中的属性值呢?
修改原有属性名的属性值,规定一个对象中的属性名不能重复,如果之前有,就是修改,没有就是增加。
例如,对于上述的对象obj:
obj.name = 'rose';
// obj中已经存在了name属性,所以这样可以直接修改
obj.age = 10;
// obj中没有age属性,所以这样是在obj中添加了age属性
获得对象的属性值:
使用点语法:直接 对象名.属性名
后者中括号的方法对象名[属性名]
就能获得对象的属性值了。如果属性名不存在,则返回 undefined
。
console.log(obj['name']); // rose
console.log(obj.name); // rose
console.log(obj.firstName); // undefined
删除对象的属性:
- 假删除
obj.age = null;
console.log(obj.age); // null
- 真删除
delete obj.name;
console.log(obj.name); // undefined
JavaScript中对象,类,实例的区别:
- 对象是抽象的概念,是指的一种泛指,js中,万物皆对象。
- 类是对对象的具体的细分。
- 实例是类中的一个具体的事物。
例如:自然界中也是万物皆对象,所有的东西都可以具体的细分,可以分为:人类,植物类,动物类,物体类...而每一个人都是人类中的一个具体的实例。
所以对象数据类型还可以再细分:
var obj = {}; // 对象(Object)
var ary = []; // 数组 (Array)
var reg = /^$/; // 正则 (RegExp)
// 时间(Date), 字符串类(String), 布尔类(Boolean), 数学函数(Math) ...等对应的实例:对象、数组、正则、时间...
网友评论