面向对象--- 之创建对象
为什么需要创建对象?
使用Object构造函数或对象字面量虽然可以创建单个对象,但是这样在需要创建很多对象时,会产生大量重复的代码.
1.工厂模式
优点:可以创建多个类似的对象
缺点:无法识别对象的类型
使用Object构造函数或对象字面量虽然可以创建单个对象,但是这样在需要创建很多对象时,会产生大量重复的代码.(构造函数解决)
打印结果:
2.构造函数
特点:
- 没有显式的创建对象
- 直接将属性和方法赋给this对象
- 没有return语句
- 函数名以一个大写字母开头
优点:可以自定义对象类型的属性和方法
缺点:如果需要定义很多个方法,那么就要定义很多个全局函数,不具有封装性(可以使用原型模式解决)
创建Person的新实例,必须使用new操作符,创建的构造函数会经历以下几个步骤
- 创建一个新对象
- 将构造函数的作用域赋给新对象(this指向了这个新对象)
- 执行构造函数中的代码(为新对象添加属性)
- 返回新对象
打印结果:
person1 和person2 分别保存这Person的一个不同的实例, 这个两个对象都有一个constructor属性,且都指向Person
3.原型模式
优点:可以让所有对象实例共享它所包含的属性和方法
更简单的原型语句(此时的constructor不再指向Person了)
如果想要constructor 指向Person,可以写成如下方式