什么叫模式?
可靠、已验证、满足个人需求、实现大型的功能解决方案
例:元素的选择
1.工厂模式
(做重复的事情)比如传入型号,做同样的重复事情,或加以判断加以处理
2.单例模式
只有一个实例
var createWindow = function(){
var div = document.createElement("div");
div.innerHTML = "我是弹窗内容";
div.style.display = 'none';
document.body.appendChild(div);
return div;
};
document.getElementById("btn").onclick = function(){
// 点击后先创建一个div元素
var win = createWindow();
win.style.display = "block";
};
3.观察者模式(订阅模式)
var fabuObj = {}; //新建一个对象==定义发布者
fabuObj.list = []; //订阅集合
//增加订阅者信息
fabuObj.listen = function(fn){
fabuObj.list.push(fn);
};
//发布 消息(触发)
fabuObj.trigger = function(){
for(var i=0,fn;fn=this.list[i++];){
fn.apply(this,arguments); //代表传入的所有参数
}
};
fabuObj.listen(function(name,color,size){
console.log('姓名:'+name);
console.log('颜色:'+color);
console.log('尺码:'+size);
});
fabuObj.trigger('sonia','红色','s');
fabuObj.trigger('sonia1','红色2','s3');
适配器模式
把多个,原本不匹配的两个类,放在一起工作