深入对象
创建对象三种方式
- 利用字面量创建对象
const pig = {
name:'peiqi'
}
- 利用new Object创建对象
const pig = new Object({name:'peiqi'})
- 利用构造函数创建对象
构造函数
构造函数是一种特殊的函数,主要用来初始化对象
使用场景:常规的{…}语法允许创建一个对象。比如我们创建了佩奇的对象,继续创建乔治的对象还需要重新写一遍,此时可以通过构造函数来快速创建多个类似的对象
注意:
1.它们的命名以大写字母开头
2.它们只能由“new”操作符来执行
例如:
function Pig(uname,age) {
this.uname = uname
this.age = age
}
console.log(new Pig('peiqi',6))
说明:
- 使用new关键字调用函数的行为被称为实例化
- 实例化构造函数时没有参数时可以省略()
- 构造函数内部无需写return,返回值即为新创建的对象
- 构造函数内部的return返回的值无效
- new Object()、new Date()也是实例化构造函数
实例化执行过程
1.创建新对象
2.构造函数this指向新对象
3.执行构造函数代码,修改this,添加新的属性
4.返回新对象
实例成员&静态成员
实例成员
通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员(实例属性和实例方法)
说明:
1.为构造函数传入参数,创建结构相同但值不同的对象
2.构造函数创建的实例对象彼此独立互不影响
静态成员
构造函数的属性和方法被称为静态成员(静态属性和静态方法)
说明:
1.静态成员只能构造函数来访问
2.静态方法中的this指向构造函数