示例代码
// 调用方法
var golf = CarFactory.make('Compact');
var vento = CarFactory.make('Sedan');
var touareg = CarFactory.make('SUV');
// 实现
// 工厂构造函数
function CarFactory() {}
CarFactory.prototype.info = function() {
console.log('...');
};
// 造车的函数
CarFactory.make = function(type) {
var carType = type;
var car;
// 让每种类型的车的原型都有一个打印自身信息的方法
CarFactory[carType].prototype = new CarFactory();
// 造车
car = new CarFactory[carType]();
};
// 具体每种车的制作方法
CarFactory.Compact = function() {
// ...
};
CarFactory.Sedan = function() {
// ...
};
CarFactory.SUV = function() {
// ...
};
CarFactory[carType]
这行代码,其实就是通过一个读取属性的方式来获取每种类型的车,对应的制作方法
所以,这一种实现,核心就是,让每一个具体的类的构造方法,成为工厂的一个属性