定义
JavaScript
中的所有都是对象。对象是一种特殊的数据,拥有属性和方法(即对象成员)。
创建对象的方式
对象字面量
1 | var person = {
|
2 | name:'张三',
|
3 | age:23,
|
4 | say:function() {
|
5 | console.log('hello,my name is '+this.name)
|
6 | }
|
7 | }
|
8 | person.say();
|
new Object()
构造函数
1 | var person = new Object();
|
2 |
|
3 | person.name = '张三';
|
4 |
|
5 | person.say = function() {
|
6 | console.log('hello,my name is '+this.name)
|
7 | }
|
8 | person.say();
|
自定义构造函数 - 对象构造器 - 工厂方法
1 | function Person(name,age) {
|
2 | this.name = name;
|
3 | this.age = age;
|
4 | this.say = function() {
|
5 | console.log('hello,my name is '+this.name)
|
6 | }
|
7 | }
|
8 | var person1 = new Person('张三',22)
|
关键字 new
new
的执行过程:
- 在内存中创建一个空对象
- 让构造函数中的
this
执行创建的对象
- 执行构造函数,在构造函数中设置属性和方法
- 返回当前对象
对象遍历的方法
for…in 循环
1 | var person={firstName:"John",lastName:"Doe",age:25};
|
2 | for (value in person) {
|
3 | console.log(value);
|
4 | }
|
Object.keys()
返回对象所有可枚举属性的字符串数组。
1 | var person={firstName:"John",lastName:"Doe",age:25};
|
2 | var arr = Object.keys(person)
|
3 | console.log(arr);
|
Object.values()
返回对象自身的所有可枚举属性值的数组。
1 | var person={firstName:"John",lastName:"Doe",age:25};
|
2 | console.log(Object.values(person));
|
Object.getOwnPropertyNames
返回对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
1 | var arr = ["a", "b", "c"];
|
2 | console.log(Object.getOwnPropertyNames(arr).sort());
|
删除对象的成员
1 | var person={firstName:"John",lastName:"Doe",age:25};
|
2 | console.log(person);
|
3 | delete person.age;
|
4 | console.log(person);
|
继承
1 | var father = {
|
2 | name:"张三",
|
3 | age:50,
|
4 | houses:['别墅','公寓'],
|
5 | play:function() {
|
6 | console.log('运动');
|
7 | }
|
8 | }
|
9 |
|
10 | var son = {
|
11 | name:"张四",
|
12 | }
|