理解JavaScript中的多态
多态的实际含义是:同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果。
假设我们要编写一个地图应用,现在有两家可选的地图 API 提供商。
const googleMap = { show: function () { console.log('谷歌地图'); }
};
const baiduMap = { show: function () { console.log('百度地图'); }
};
const renderMap = function (type) { if (type === 'google') { googleMap.show(); } else if (type === 'baidu') { baiduMap.show(); }
};
renderMap('google'); // 输出:谷歌地图
renderMap('baidu'); // 输出:百度地图
同一个方法renderMap
,根据传入的参数不同,作出了各自不同的反应。调用各家地图的show
方法。(同一个接口可以不同实现)
多态背后思想是将“做什么”和“谁去做以及怎样去做”分离开来,也就是将“不变的事物”与 “可能改变的事物”分离开来。
下面是改写后的代码,首先我们把不变的部分隔离出来,地图都会有show
方法的API。
const googleMap = { show: function () { console.log('谷歌地图'); }
};
const baiduMap = { show: function () { console.log('百度地图'); }
}; const renderMap = function (map) { if (map.show instanceof Function) { map.show(); }
};
renderMap(googleMap); // 输出:谷歌地图
renderMap(baiduMap); // 输出:百度地图
方法 renderMap
根据传入的地图对象进行调用显示。这就是对象的多态性。
完
理解JavaScript中的多态相关推荐
- 帮助你更好理解javascript中easing功能的网站 - Easings.net
日期:2012-10-17 来源:GBin1.com 如果你开发过jQuery的动画效果的话,肯定接触过一个jQuery插件:jquery.easing plugin,这个插件可以帮助你生成不同类型 ...
- 理解javascript中的回调函数(callback)【转】
在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...
- php event loop,理解javascript中的事件循环(Event Loop)
背景 在研究js的异步的实现方式的时候,发现了JavaScript 中的 macrotask 和 microtask 的概念.在查阅了一番资料之后,对其中的执行机制有所了解,下面整理出来,希望可以帮助 ...
- 理解JavaScript中的原型继承(2)
两年前在我学习JavaScript的时候我就写过两篇关于原型继承的博客: 理解JavaScript中原型继承 JavaScript中的原型继承 这两篇博客讲的都是原型的使用,其中一篇还有我学习时的错误 ...
- javascript 符号_理解JavaScript中“ =”符号的直观指南
javascript 符号 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) 理解JavaScript中" ="符号的直观指南 (A Visu ...
- 深入理解JavaScript中的属性和特性
深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...
- 理解JavaScript中的原型与原型链
理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...
- 理解javascript中的回调函数(callback)
理解javascript中的回调函数(callback) 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Obje ...
- 理解JavaScript中部分设计模式
理解JavaScript中部分设计模式 什么是设计模式 在软件工程中,设计模式是软件设计中常见问题可重用的方案.设计模式代表着经验丰富的软件开发人员使用的最佳实践.设计模式可以被认为是编程模板. 为什 ...
最新文章
- order by总结
- 摘自《解析极限编程-拥抱变化》
- NSDictionary NSArray 转中文输出
- Android加密通信防抓包,[原创]基于Taintdroid思想的android ssl\tsl保密通信抓包研究(未成功,分享一下思路)...
- Python学习日记之中文支持
- c#中的socket(tcp)
- 7-96 福到了 (15 分)
- 数据库每日一题 2020.05.09
- C语言与汇编语言的区别
- Spring的IoC解析
- apache服务器性能不行,Apache服务器性能调优
- js 加密url java_js 对 URL 参数进行 加密 解密
- LaTex建立参考文献链接
- thinkphp5.0.6 连接SQLServer2008r2 配置总结
- [转]Understanding Integration Services Package Configurations
- eclipse中的英文与汉语对照表
- 使用github搭建网站
- List集合在遍历时删除数据的问题
- 普罗米修斯Prometheus手记
- 融云 php sdk下载,Android 即时语音聊天工具 开发
热门文章
- 别再问如何用 Python 提取 PDF 内容了!
- 阿里成立智能搜索业务部;任天堂:共有30万账号被黑客入侵;TiDB 3.1.2 发布| 极客头条...
- 大陆集团ADAS招聘丨老司机带你现场体验自动驾驶的快感
- 顶尖技术专家严选,15场前沿论坛思辨,2019中国大数据技术大会邀您共赴!
- 这本Python算法书有点火~
- 代码有温度 科技需向善
- 小米开源语音模型 Kaldi-ONNX 转换工具,助力移动端部署!
- 漫画:如何给女朋友解释什么是策略模式?
- 高度焦虑、凌晨出没、空中飞人,这些竟是 IT 大佬的日常!
- 程序员必备技能之 Git 的体系结构与历史