最近读到一本书《JavaScript设计模式与开发实践》上,讲到js的多态,我在JavaScript高级程序编程里貌似都没有见过关于这个的详细讲解,所以想问问大家有没有什么推荐的文章或者博客,可以推荐给小弟的,让小弟可以深入了解一下。
先把那本上的例子拿出来跟大家分享:
书里面的故事:本人家里养了一只鸡,一只鸭。当主人向他们发出‘叫’的命令时。鸭子会嘎嘎的叫,而鸡会咯咯的叫。转化成代码形式如下

非多态代码示例

var makeSound = function(animal) {
    if(animal instanceof Duck) {
        console.log('嘎嘎嘎');
    } else if (animal instanceof Chicken) {
        console.log('咯咯咯');
    }
}
var Duck = function(){}
var Chiken = function() {};
makeSound(new Chicken());
makeSound(new Duck());

多态的代码示例

var makeSound = function(animal) {
    animal.sound();
}

var Duck = function(){}
Duck.prototype.sound = function() {
    console.log('嘎嘎嘎')
}
var Chiken = function() {};
Chiken.prototype.sound = function() {
    console.log('咯咯咯')
}

makeSound(new Chicken());
makeSound(new Duck());

附(https://segmentfault.com/q/1010000003056336)(http://blog.csdn.net/xiebaochun/article/details/38749953)

最新文章

  1. 【WP 8.1开发】手机客户端应用接收推送通知
  2. js模拟import方法导入外部文件
  3. Lua在给定范围内,生成指定个数不重复随机数组
  4. MediaPlayer 播放assets 文件夹下面的视频报错
  5. eclipse开发web应用程序步骤(图解)
  6. php使用第三方登录
  7. js中DOM集合的动态特性
  8. bootstrap 的 datetimepicker 结束时间大于开始时间
  9. linux内核中驱动开发常见的相似多态
  10. hibernate 单元测试 5.2
  11. sql server 深入使用 总结 part1
  12. 【Machine Learning in Action --2】K-最近邻分类
  13. Go基础(2)
  14. 在Visual Studio 2017上配置Glut
  15. [leetcode]432. All O`one Data Structure全O(1)数据结构
  16. js 判断数组中是否有某值
  17. Django 静态文件相关设置
  18. ubuntu中文版man
  19. 435. Non-overlapping Intervals
  20. Xib给特定view添加手势

热门文章

  1. 数据结构实验之图论七:驴友计划 ( 最短路径 Dijkstra 算法 )
  2. Maven学习笔记(一)—— Maven基础
  3. python学习之路---day09
  4. 应大数据时代而写了个磁力搜索的网页- WWW.MOVIH.COM 磁力
  5. ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089
  6. 隐藏入口文件的apache配置
  7. 获取url路径的正则
  8. Linux下Tomcat启动报 The BASEDIR environment variable is not defined
  9. 2019.3.22 SQL语句(基础篇)
  10. PIE SDK栅格RGB渲染