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的方式创建对象