《javascript设计模式与开放实践》学习javascript实现多态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《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实现多态的主要内容,如果未能解决你的问题,请参考以下文章
《javascript设计模式与开放实践》学习对象方法的借用
《javascript设计模式与开放实践》学习高阶函数的应用