第一个场景第一级:对象的多态性
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);
更多专业前端知识,请上 【猿2048】www.mk2048.com