1
2
3 //桥接模式的作用在于将实现部分和抽象部分分离开来,以便两者可以独立的变化。
4 var singleton=function(fn){
5 var result;
6 return function(){
7 return result||(result=fn.apply(this,arguments));
8 }
9 }
10 var createMask=singleton(function(){
11 return document.body.appendChild(document.createElement("div"));
12 });
13 //singleton是抽象部分,而createMask是实现部分,他们之间互相独立互不影响
14 //2,另外一个常见的例子是forEach函数的实现,用来迭代一个数组。
15 forEach=function(ary,fn){
16 for(var i=0,l=ary.length;i<l;i++){
17 var c=ary[i];
18 if(fn.call(c,i,c)===false){
19 return false;
20 }
21 }
22 }
23
24 forEach([1,2,3],function(i,n){
25 alert(n*2);
26 })
27 forEach([1,2,3],function(i,n){
28 alert(n*3);
29 })
30
31 </script>