首页 > 代码库 > 《javascript设计模式与开放实践》学习(一)javascript实现多态
《javascript设计模式与开放实践》学习(一)javascript实现多态
还是以鸭子唱歌为例
1、prototype 给对象添加方法或属性
<script> var makeSound=function (animal) { animal.sound(); } var Duck=function () { } Duck.prototype.sound=function () { console.log("嘎嘎嘎"); } var Chichen=function () { } Chichen.prototype.sound=function () { console.log("咯咯咯"); } makeSound(new Chichen()); makeSound(new Duck()) </script>
给定义的Duck和 Chicken添加sound的方法
2、typeof和instanceof用法
只有具有sound方法的动物才能唱歌
1)typeof
用来检测给定变量的数据类型,可能的返回值:
1. ‘undefined‘ --- 这个值未定义;
2. ‘boolean‘ --- 这个值是布尔值;
3. ‘string‘ --- 这个值是字符串;
4. ‘number‘ --- 这个值是数值;
5. ‘object‘ --- 这个值是对象或null;
6. ‘function‘ --- 这个值是函数。
var makeSound=function (animal) { if(typeof animal.sound===‘function‘){ animal.sound(); }}
2)instanceof用来判断对象是否某另一个对象的实力,返回值true or false
var makeSound=function (animal) { if(animal.sound instanceof Function){ animal.sound(); } }
《javascript设计模式与开放实践》学习(一)javascript实现多态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。