学习书籍:《JavaScript设计模式》
学习目标:
学习内容:
function createPop(type, text){
var o = new Object();
o.content = text;
o.show = function(){};
if (type == 'alert'){
}
if (type == 'prompt'){
}
if (type == 'confirm'){
}
return o;
}
var userNameAlert = createPop('alert', '用户名只能是26个字母和数字');
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) {},
UI : function(content) {
this.content = content;
(function(content){
var div = document.createElement('div');
div.innerHTML = content;
div.style.broder = '1px solid red';
document.getElementByle('container').appendChild(div);
})(content);
},
PHP : function(content) {}
};
var Car = function(){};
Car.prototype = {
getPrice : function() {
renturn new Error('抽象方法不能调用')
},
getSpeed : function() {
renturn new Error('抽象方法不能调用')
},
};
var VehicleFactory = function(subType, superType){
if (typeof VehicleFactory[superType] === 'function'){
function F(){};
F.prototype = new VehicleFactory[superType]();
subType.constructor = subType;
subType.prototype = new F();
}else{
throw new Error('未创建该抽象类')
}
}
VehicleFactory.Car = function() {
this.type = 'car';
};
VehicleFactory.Car.prototype = {
getPrice : function() {
renturn new Error('抽象方法不能调用')
},
getSpeed : function() {
renturn new Error('抽象方法不能调用')
}
};
VehicleFactory.Bus= function() {
this.type = 'bus';
};
VehicleFactory.Bus.prototype = {
getPrice : function() {
renturn new Error('抽象方法不能调用')
},
getSpeed : function() {
renturn new Error('抽象方法不能调用')
}
};
var BMW = function(price, speed){
this.price = price;
this.speed = speed;
}
VehicleFactory(BMW, 'Car');
BMW.prototype.getPrice = function(){
return this.price;
}
BMW.prototype.getSpeed = function(){
return this.speed ;
}