自定义构造函数和工厂模式

193 阅读1分钟

1 自定义构造函数

<script>
function Person(name,age){
    this.name=name;
    this.age=age;
    this.sayHi=function(){
        console.log("您好");
    }
}
var per = new Person("小明",20);

//创建对象---->实例化一个对象,的同时对属性进行初始化
</script>
/*
* 1.开辟空间存储对象
* 2.把this设置为当前的对象
* 3.设置属性和方法的值
* 4.把this对象返回
*/

2 工厂模式

<script>
function createObject(){
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.sayHi=function(){
        console.log("您好");
    };
    return obj
}
var per1=createObject("小明",20);
</script>

3 区别

3.1 共同点

  • 都是函数,都可以创建对象,都可以传入参数

3.2 不同点

  • 工厂模式:函数名是小写;有new;有返回值;new之后的对象是当前的这个对象;直接调用函数就可以创建对象
  • 自定义构造函数:函数名首字母是大写;没有new;没有返回值;this是当前的对;通过new的方式创建对象