工厂方法和构造函数
工厂方法
function CreatCar(name,prase){
var obj = new Object();
obj.name = name;
obj.parse = prase;
obj.print = function(){
console.log(this.name +" : " + this.parse)
};
return obj;
};
var car1 = CreatCar("car1",120000);
var car2 = CreatCar("car2",12345);
var car3 = CreatCar("car3",788888);
car1.print();
car2.print();
car3.print();
构造函数
- 工厂方法虽然可以批量生产对象,但所生产的对象都是 Object 类的实例,无法区分类别
function print(){
console.log(this.name +" : " + this.parse)
};
function Car(){
this.type = "car";
this.print = print;
}
function CreatCar(name,prase){
var obj = new Car();
obj.name = name;
obj.parse = prase;
return obj;
}
var car1 = CreatCar("car1",120000);
var car2 = CreatCar("car2",12345);
var car3 = CreatCar("car3",788888);
console.log(car1);
console.log(car2);
console.log(car3);
- 构造函数的执行流程
- 创建一个新对象
- 将新创建的对象作为构造函数的 this
- 执行构造函数中的语句
- 将新创建的对象返回
- 可以使用
instenceof
判断一个对象是否是一个类的实例