面向对象(二)创建对象的几种方法

创建对象的几种方法

  • 字面量方式
  • 使用内置的构造函数
  • 使用简单工厂函数
  • 自定义构造函数

01字面量的方式创建对象

  • 结构
```javascript
var 对象 = {
    属性名01:属性值,
    属性名02:属性值,
    方法01:function(){函数体}
}
```
  • 适用场合:只需简单创建单个对象
  • 问题:
    如果需要创建多个相似的对象,那么代码中冗余度太高(重复的代码太多)

02内置的构造函数创建对象

Object Function (String Number Boolean) Array Date ....
  • 问题:
    如果需要创建多个相似的对象,那么代码中冗余度太高(重复的代码太多)

问题:如果需要创建多个相似的对象,那么代码中冗余度太高(重复的代码太多)

简单工厂函数创建对象

  • 问题:
    如果创建多个不同类型的对象,那么我们无法分辨

问题:如果创建多个不同类型的对象,那么我们无法分辨

自定义构造函数创建对象

  • 具体步骤
    01 提供一个构造函数
    02 通过this指针来设置属性和方法
    03 通过new操作符创建对象

  • 自定义构造函数方式创建对象内部的实现细节
    01 我们在使用new关键字调用构造函数的时候,内部默认会创建一个空的对象
    02 默认会把这个空的对象赋值给this
    03 通过this来设置新对象的属性和方法
    04 在构造函数的最后,默认会把新创建的对象返回

  • 自定义构造函数和工厂函数对比
    01 函数的名称不一样,构造函数首字母大写
    02 自定义构造函数创建方式内部会自动的创建空对象并且赋值给this
    03 默认会自动返回新创建的对象

  • 返回值
    01 没有显示的return ,默认会把新创建的对象返回
    02 显示的执行了return语句,就得看具体的情况
    • 返回的是值类型,那么直接忽略该返回,把新创建的对象返回
    • 返回的是引用类型的数据,会覆盖掉新创建的对象,直接返回引用数据类型的值


  • 返回值
    01 没有显示的return ,默认会把新创建的对象返回
    02 显示的执行了return语句,就得看具体的情况
    • 返回的是值类型,那么直接忽略该返回,把新创建的对象返回
    • 返回的是引用类型的数据,会覆盖掉新创建的对象,直接返回引用数据类型的值


你可能感兴趣的:(面向对象(二)创建对象的几种方法)