面向对象--- 之创建对象

为什么需要创建对象?
使用Object构造函数或对象字面量虽然可以创建单个对象,但是这样在需要创建很多对象时,会产生大量重复的代码.

1.工厂模式

优点:可以创建多个类似的对象
缺点:无法识别对象的类型
使用Object构造函数或对象字面量虽然可以创建单个对象,但是这样在需要创建很多对象时,会产生大量重复的代码.(构造函数解决)

 

打印结果:

 

2.构造函数

特点:

  • 没有显式的创建对象
  • 直接将属性和方法赋给this对象
  • 没有return语句
  • 函数名以一个大写字母开头

优点:可以自定义对象类型的属性和方法

缺点:如果需要定义很多个方法,那么就要定义很多个全局函数,不具有封装性(可以使用原型模式解决)

 

创建Person的新实例,必须使用new操作符,创建的构造函数会经历以下几个步骤

  • 创建一个新对象
  • 将构造函数的作用域赋给新对象(this指向了这个新对象)
  • 执行构造函数中的代码(为新对象添加属性)
  • 返回新对象

打印结果:

person1 和person2 分别保存这Person的一个不同的实例, 这个两个对象都有一个constructor属性,且都指向Person

3.原型模式

优点:可以让所有对象实例共享它所包含的属性和方法

更简单的原型语句(此时的constructor不再指向Person了)

如果想要constructor 指向Person,可以写成如下方式

 

posted @ 2018-03-08 10:41  芦小微  阅读(127)  评论(0编辑  收藏  举报