工厂模式创建对象和自定义构造函数创建对象的异同

288 阅读1分钟

自定义函数

 function Person(name, age) {
      this.name = name;
      this.age = age;
      this.sayHi = function () {
        console.log("你好");
      }
    }

工厂模式 : 是32种设计模式的其中一种

function createObj(name, age) {
      var obj = new Object();
      obj.name = name;
      obj.age = age;
      obj.sayHi = function () {
        console.log("你好");
      }

      return obj;
    }

相同点:

1.都可以创建对象
2.都有参数
3.都是函数

不同点:

自定义函数:
1.函数名首字母大写
2.没有new
3.没有返回值
4.this指向当前对象
5.需要new才能创建对象


工厂模式的特点:
1.函数名按照小驼峰命名法
2.有new
3.有返回值
4.返回的就是当前对象
5.不需要new 直接调用方法 就能创建对象