Javascript多态性例子

Js的多态性,实际上是在原型链上定义方法。成员重写原型链的方法即可。

举个栗子

逗女孩开心的方法很多,送花、送礼物、小惊喜、说走就走的旅行。用js实现如果不使用多态代码如下:

!function(){
    var girl = function(xingdong){ //定义女孩
        if(xingdong instanceof Flowers){ //送花
            console.log("送花,很开心");
        }
        else if(xingdong instanceof Gift){ //送礼物
            console.log("送礼物,很开心");
        }
    }
    var Flowers = function(){} //定义花
    var Gift = function(){} //定义礼物
    //执行
    girl(new Flowers());
    girl(new Gift());
}()

这个时候,如果有个说走就走的旅行,还需要改女孩里面的判断。开闭原则,对修改关闭对扩展开放。因为改的越多,出错的可能就越大。所以应该改为使用多态的代码:

!function(){
    var girl = function(xingdong)
    {
        xingdong.xiaoguo();
    };
    var Flowers = function(){}
    Flowers.prototype.xiaoguo = function(){
        console.log("送花,很开心");
    }
    var Gift = function(){}
    Gift.prototype.xiaoguo = function(){
        console.log("送礼物,很开心");
    }
    girl(new Flowers());
    girl(new Gift());
}()

这样如果需要修改,不用对女孩做任何的修改。符合对修改关闭,对扩展开放。比如,我现在要给他一个说走就走的旅行。

var ShuoZouJiuZou = function(){}
    ShuoZouJiuZou.prototype.xiaoguo = function(){
        console.log("送说就走就的旅行,很开心");
    }
    girl(new ShuoZouJiuZou());

修改越少,程序出错的可能性越少。所以尽量多使用多态这种方法。

就到这里,By~

时间: 2024-10-25 19:23:42

Javascript多态性例子的相关文章

javascript 小例子(待补充)

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> function figure1(){ var figure = money.value; var wushi = Math.floor(figure/50); var ershi = Math

javascript经典例子

javascript经典例子  一.验证类 1.数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2.时间类 2.1 短时间,形如 (13:04:06) 2.2 短日期,形如 (2003-12-05) 2.3 长时间,形如 (2003-12-05 13:04:06) 2.4 只有年和月.形如(2003-05,或者2003-5) 2.5 只有小时和分钟,形如(12:03) 3.表单类 3.1 

[Java Web] 4\JavaScript 简单例子(高手略过)

内容概览: JavaScript简介 JavaScript的基本语法 JavaScript的基本应用 JavaScript的事件处理 window对象的使用 JavaScript简介: JavaScript(Java脚本)是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言: 是由Netscape公司的LiveScript发展而来的: 使用JavaScript可以轻松的实现和HTML的互操作,并且完成丰富的页面交互效果: 它是通过嵌入或调入在标准的HTML

javascript实用例子

js学习笔记,别错过!很有用的. ///////////////////////////////////////////////////////////////////////////////////////// 一.验证类 1.数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2.时间类 2.1 短时间,形如 (13:04:06) 2.2 短日期,形如 (2003-12-05) 2.3 长

javascript小例子:實現四方向文本无缝滚动效果

实现一个文本无缝滚动的效果: <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="zh-CN" class="ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="zh-CN" class="ie7"> <![endif]--> <!--[if IE 8 ]

JavaScript正则例子

查看页面是否有某个jsvar slist=document.getElementsByTagName('script') || [];var reg=/jQuery\.min\.js/i;for(var i=0;i<slist.length;i++){ if(reg.test(slist[i].src)){ return; }}最简单的正则表达式,将匹配"jQuery.min.js"这个字符串“i”表示不分大小写,i标志(i是ignoreCase或case-insensitive

MD5加密的javascript实现例子ksjs709

PingWest品玩4月10日报道,今日下午,<奇葩大会>第二季在爱奇艺官网已经显示404无法观看,或被下架整改,第一季可以照常播放.该节目是爱奇艺出品.米未承制的观点分享类节目.本季主题为"特别人类大会",其旨在寻找特别人类,分享生命体验和人生观点,节目固定参与嘉宾包括赵又廷.马东.蔡康永.高晓松.<奇葩大会>第二季于2018年2月3日在爱奇艺上线,每周六晚8点更新. 诩悠TQHhttp://weibo.com/pp20180412P/230927981149

一个php多态性的小例子

多态性在 OO 中指 "语言具有以不同方式处理不同类型对象的能力",但 PHP 是弱类型语言,在这一点上就比较弱,仅有 instance of 可以用于判断对象的类型 多态性的优点:让代码更接近生活中的真实情况 一下是一个非常简单的多态性例子,描述在电脑上安装不同操作系统,linux, OS X, windows 和 computer 是两种不同类型的对象. interface os{ function name(); function creator(); } class linux

[译]Javascript中闭包的各种例子

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b 在本次的视频中我们将讨论一个简单的Javascript闭包例子.每次我们点击页面上的按钮的时候,我们都想要点击计数增加1.为了达到这个目的,我们有很多中途径. 首先我们可用一个全局变量,然后每次我们点击按钮后,这个变量增