码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript多态性例子

时间:2015-11-06 19:18:37      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

 

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~

Javascript多态性例子

标签:

原文地址:http://www.cnblogs.com/chenxygx/p/4943313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!