第一個場景第一級:對象的多態性 第二個場景:第一級,需要有什麼類型就要去判斷if else 去判斷,要是有需要添加一個地圖,又需要改密碼了 第二級:這樣不管你有多少個類型,都不需要改主代碼 ...
第一個場景第一級:對象的多態性
var makeSound=function(animal){ animal.sound(); } var duck=function(){}; duck.prototype.sound=function(){ console.log('嘎嘎嘎') } makeSound(new duck()); var chicken=function(){}; chicken.prototype.sound=function(){ console.log('咯咯咯') } makeSound(new chicken()); var dog=function(){}; dog.prototype.sound=function(){ console.log('汪汪汪'); } makeSound(new dog());
第二個場景:第一級,需要有什麼類型就要去判斷if else 去判斷,要是有需要添加一個地圖,又需要改密碼了
var googleMap={ show:function(){ console.log('開始渲染谷歌地圖'); } } var baiduMap={ show:function(){ console.log('開始渲染百度地圖'); } } var renderMap=function(type){ if(type == 'googleMap'){ googleMap.show(); }else if(type=='baiduMap'){ baiduMap.show(); } } renderMap('googleMap'); renderMap('baiduMap');
第二級:這樣不管你有多少個類型,都不需要改主代碼
var googleMap={ show:function(){ console.log('開始渲染谷歌地圖'); } } var baiduMap={ show:function(){ console.log('開始渲染百度地圖'); } } var renderMap=function(map){ if(map.show instanceof Function){ map.show(); } } var sosoMap={ show:function(){ console.log('開始渲染soso地圖') } } renderMap(googleMap); renderMap(baiduMap); renderMap(sosoMap);