您的位置:首页 > Web前端 > JavaScript

javascript设计模式--工厂方法模式

2016-04-19 10:51 477 查看

工厂方法模式

将实际创建对象工作推迟到子类当中。

1.安全模式类,用new和不用new都能够得到预期的对象。

var Demo = function(){}
Demo.prototype = {
show : function(){
console.log('成功获取');
}
}
var d = new Demo();
d.show();//成功获取
var d = Demo();
d.show();//uncaught typeerror:cannot read peoperty show of undefined


解决办法:在构造函数开始时先判断当前对象this指代是不是类(demo),如果是则通过new关键子创建对象,

var Demo = function(){
if(!(this instanceof Demo)){
return new Demo;
}
}
var d = Demo();
d.show();


2.安全的工厂方法

var Factory = function(type,content){
if(this instanceof Factory){
var s = new this[type](content);
return s;
}
else{
return new Factory(type,content);
}
}
//工厂原型中设置创建所有类型数据对象的基类
Factory.prototype = {
Java:function(content){
...
}
javascript:function(content){
...
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: