分 享

【凤凰社】JS高级---工厂模式创建对象和自定义构造函数创建对象的区别

创建对象:工厂模式和自定义构造函数的区别

共同点: 都是函数, 都可以创建对象, 都可以传入参数
 
区别:
 
工厂模式:
  1.   函数名是小写
  2.   有new,
  3.   有返回值
  4.   new之后的对象是当前的对象
  5.   直接调用函数就可以创建对象
    //工厂模式创建对象
    function createObject(name, age) {
      var obj = new Object();
      obj.name = name;
      onj.age = age;
      obj.sayHi = function () {
        console.log("您好");
      };
      return obj;
    }
    var per2 = createObject("小明", 20);

 

自定义构造函数:
  1.   函数名是大写(首字母)
  2.   没有new
  3.   没有返回值
  4.   this是当前的对象
  5.   通过new的方法来创建对象
    //自定义构造函数创建对象
    function Person(name, age) {
      this.name = name;
      this.age = age;
      this.sayHi = function () {
        console.log("您好");
      };
    }
    var per1 = new Person("小红", 20);

0 评论

回复