js设计模式与开发实践1
2017-09-07 18:44
92 查看
故事:
从前在 JavaScript王国里,有一个国王,他觉得世界上最美妙的声音就是鸭子的叫 声,于是国王召集大臣,要组建一个 1000 只鸭子组成的合唱团。大臣们找遍了全国, 终于找到 999只鸭子,但是始终还差一只,最后大臣发现有一只非常特别的鸡,它的叫 声跟鸭子一模一样,于是这只鸡就成为了合唱团的最后一员。
我们看到,对于加入合唱团的动物,大臣们根本无需检查它们的类型,而是只需要保证它们 拥有 duckSinging 方法。如果下次期望加入合唱团的是一只小狗,而这只小狗刚好也会鸭子叫, 我相信这只小狗也能顺利加入
从前在 JavaScript王国里,有一个国王,他觉得世界上最美妙的声音就是鸭子的叫 声,于是国王召集大臣,要组建一个 1000 只鸭子组成的合唱团。大臣们找遍了全国, 终于找到 999只鸭子,但是始终还差一只,最后大臣发现有一只非常特别的鸡,它的叫 声跟鸭子一模一样,于是这只鸡就成为了合唱团的最后一员。
var duck={ duckSingsing:function () { console.log("嘎嘎") } }; var chick={ duckSingsing:function () { console.log("嘎嘎") } } var choir=[]; var joinChoir=function(animal){ if(animal&&typeof animal.duckSingsing==="function"){ choir.push(animal); console.log("恭喜加入合唱团"); console.log("合唱成员数量:"+choir.length) } } joinChoir(duck); joinChoir(chick);
我们看到,对于加入合唱团的动物,大臣们根本无需检查它们的类型,而是只需要保证它们 拥有 duckSinging 方法。如果下次期望加入合唱团的是一只小狗,而这只小狗刚好也会鸭子叫, 我相信这只小狗也能顺利加入
相关文章推荐
- js设计模式与开发实践5
- AndroidWidget实践 --- EverydayTips开发(6)
- 基于百度MAP开发实践一
- Android开发实践 ContentProvider和ContentResolver
- 20169205 2016-2017-2 《移动平台应用开发实践》第5周学习总结
- ASP.NET开发实践系列课程之Web应用的安全攻防之网页木马
- 读敏捷软件开发-原则,模式,与实践的感触
- Android开发实践:利用ProGuard进行代码混淆
- 实践中悟出的最佳JavaScript开发
- 【原创】基于禅道的敏捷开发管理实践
- Android软件安全开发实践
- Silverlight开发实践--PicZoomShow(源)
- 最详细的 Android NavigationDrawer 开发实践总结
- Android 开发之旅:短信的收发及在android模拟器之间实践(一)
- win2k环境下的JBOSS开发实践
- ExtJS2.0开发与实践笔记[2]——Ext中的Layout
- Cocos2d-x for Android & iOS开发环境配置最佳实践
- WCF分布式安全开发实践(9):消息安全模式之Windows身份验证:Message_Windows_NetTcpBinding
- 如何开发出一款仿映客直播 APP 项目实践篇 -【采集篇 】
- 移动Web单页应用开发实践——页面结构化