多态:“做什么”和“怎么去做”是可以分开的。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
当我们向谷歌地图对象和百度地图对象分别发出“展示地图”的消息时,会分别调用它们的show方法,就会产生各自不同的执行结果。
对象的多态性提示我们,“做什么”和“怎么去做”是可以分开的,即使以后增加了搜搜地图,renderMap函数仍然不需要做任何改变
<script>
var googleMap = {
show: function() {
console.log('谷歌')
}
}
var baiduMap = {
show: function() {
console.log('百度')
}
}
var renderMap = function(type) {
if(type === 'google') {
googleMap.show()
}else if(type === 'baidu') {
baiduMap.show()
}
};
renderMap('google');
renderMap('baidu')
</script>
</body>
</html>
网友评论