工厂模式
function createObject(name,age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayHi = function(){
console.log("您好,我是工厂模式");
}
return obj;
}
自定义构造函数
function Person(name,age){
this.name = name;
this.age = age;
this.sayHi = function(){
console.log("您好,我是自定义构造函数")
}
}
两者的区别和联系:
联系: 都是函数,都可以创建对象,都可以传入参数。
区别:
工厂模式
- 函数名是小写
- 有new
- 有返回值
- new 之后的对象是当前的对象
- 直接调用函数就可以创建对象。
自定义构造函数
- 函数名是大写
- 没有new
- 没有返回值
- this是当前的对象
- 通过new的方式来创建对象。
实例对象和构造函数之间的关系
1、实例对象是通过构造函数创建出来的,创建的过程叫做实例化。
2、如何判断对象的数据类型?
- 通过构造器的方式,实例对象.构造器 == 构造函数的名字
- 对象 instanceof 构造函数名字
自定义构造函数创建对象的执行过程
1、在内存中开辟空间存储创建的对象;
2、this 设置为当前的对象
3、设置对象的属性和方法
4、把 this 这个对象返回