[TOC]
## 5.1 Obeject类型
所有其他对象都继承Object对象。
**1. 创建Object实例(实例化对象)**
创建object实例的方式有两种:
* 使用**new操作符**后跟Object构造函数
~~~
var person = new Object();
person.name = "Nicholas";
person.age = 29;
~~~
* 使用**对象字面量**:
~~~
var person = {
name : "Nicholas",
age : 29,
5 : true
}
~~~
**2.访问对象**
访问对象属性时一般使用**点表示法**,还有一种方括号表示法。
注意:如果对象属性名是不符合语法的或属性名是关键字或保留字,只能使用方括号表示法。例如:
~~~
var person = {
"1a" : 1
};
person["1a"]; // 1
person.1a // 会报错
~~~
**3.Object对象的静态方法**
`Object.keys()、Object.getOwnPropertyNames()`方法
Object.keys()方法和Object.getOwnPropertyNames()方法一般用来遍历对象的属性,它们的参数都是一个对象,**返回一个数组,该数组的项都是对象自身的(不是继续原型的)的所有属性名**。两者的区别在于,Object.keys()只返回可枚举的属性,Object.getOwnPropertyNames()方法还返回不可枚举的属性名。
~~~
var o = {
p1: 123,
p2: 456
};
Object.keys(o)
// ["p1", "p2"]
Object.getOwnPropertyNames(o)
// ["p1", "p2"]
~~~
~~~
var a = ["Hello", "World"];
Object.keys(a)
// ["0", "1"]
Object.getOwnPropertyNames(a)
// ["0", "1", "length"]
~~~
数组的length属性是不可枚举的。
**4.Object对象的实例方法**
| 方法名 | 描述 |
| --- | --- |
| valueOf() | 返回当前对象对应的值,默认情况下返回对象本身。 |
| toString() | 返回当前对象对应的字符串形式。 |
| toLocaleString() | 返回当前对象对应的本地字符串形式。 |
| hasOwnProperty() | 判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。 如果是自身的属性,返回true,否则返回false。 |
| isPrototypeOf() | 判断当前对象是否为另一个对象的原型。如果是,返回true,否则返回false。 |
| propertyIsEnumerable() | 判断某个属性是否可枚举。 |
- 前言
- 第一章 JavaScript简介
- 第三章 基本概念
- 3.1-3.3 语法、关键字和变量
- 3.4 数据类型
- 3.5-3.6 操作符、流控制语句(暂略)
- 3.7函数
- 第四章 变量的值、作用域与内存问题
- 第五章 引用类型
- 5.1 Object类型
- 5.2 Array类型
- 5.3 Date类型
- 5.4 基本包装类型
- 5.5 单体内置对象
- 第六章 面向对象的程序设计
- 6.1 理解对象
- 6.2 创建对象
- 6.3 继承
- 第七章 函数
- 7.1 函数概述
- 7.2 闭包
- 7.3 私有变量
- 第八章 BOM
- 8.1 window对象
- 8.2 location对象
- 8.3 navigator、screen与history对象
- 第九章 DOM
- 9.1 节点层次
- 9.2 DOM操作技术
- 9.3 DOM扩展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件处理程序
- 10.3 事件对象
- 10.4 事件类型
- 第十一章 JSON
- 11.1-11.2 语法与序列化选项
- 第十二章 正则表达式
- 12.1 创建正则表达式
- 12.2-12.3 模式匹配与RegExp对象
- 第十三章 Ajax
- 13.1 XMLHttpRequest对象
- 你不知道的JavaScript
- 一、作用域与闭包
- 1.1 作用域
- 1.2 词法作用域
- 1.3 函数作用域与块作用域
- 1.4 提升
- 1.5 作用域闭包
- 二、this与对象原型
- 2.1 关于this
- 2.2 全面解析this
- 2.3 对象
- 2.4 混合对象“类”
- 2.5 原型
- 2.6 行为委托
- 三、类型与语法
- 3.1 类型
- 3.2 值
- 3.3 原生函数