工厂模式
工厂模式
林落雨 发表于9个月前
工厂模式
  • 发表于 9个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 原生JS实现工厂模式
// 父构造函数
function CarMaker(){}

// 父构造函数的原型方法
CarMaker.prototype.drive = function(){
	return this.doors;
}


// 静态工厂方法
/**
 * @param  type 具体的汽车制造商
 */
CarMaker.factory = function(type){
	var constr = type,
		newcar;

	// 如果构造函数不存在则发生错误
	if(typeof CarMaker[constr] !== "function"){
		throw{
			name:"Error",
			message:constr
		}
	}

	// 原型继承父类,但仅继承一次
	if(typeof CarMaker[constr].prototype.drive != "function"){
		CarMaker[constr].prototype = new CarMaker();
	}

	// 创建一个新实例
	newcar = new CarMaker[constr]();

	return newcar;
}

// 定义特定的汽车制造商
CarMaker.Compact = function(){
	this.doors = 4;
}

CarMaker.SUV = function(){
	this.doors = 24;
}

 

共有 人打赏支持
粉丝 0
博文 13
码字总数 2308
×
林落雨
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: