多态
2016-12-12 14:41 改吧 阅读(320) 评论(1) 编辑 收藏 举报第一个场景第一级:对象的多态性
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);