资讯专栏INFORMATION COLUMN

JavaScript面向对象编程-多态

zollero / 626人阅读

摘要:多态在面向对象中有一种特性叫多态,就是同一种方法的多种调用方式,在中也可以实现,只不过是对传入的参数做判断以实现多种调用方式。

多态

在面向对象中有一种特性叫多态,就是同一种方法的多种调用方式,在JavaScript中也可以实现,只不过是对传入的参数做判断以实现多种调用方式。

//多态
function add() {
    //获取参数
    var arg = arguments,
        len =arg.length;
    switch(len){
        //如果没有参数
        case 0:return 10;
        //如果只有一个参数
        case 1:return 10 + arg[0];
        //如果有两个参数
        case 2:return arg[0] +arg[1];
    }
}
//测试用例
console.log(add());
console.log(add(3));
console.log(add(5,7));

也可以转化成更易懂的类形式

function Add() {
    //无参数算法
    function zero() {
        return 10;
    }
    //一个参数算法
    function one(num) {
        return 10 + num;
    }
    function two(num1,num2) {
        return num1 + num2;
    }
    this.add =function () {
        var arg = arguments,
            //获取参数长度
            len = arg.length;
        switch (len) {
            //如果没有参数
            case 0:return zero();
            case 1:return one(arg[0]);
            case 2:return two(arg[0],arg[1]);
        }
    }
}
//实例化类
var A = new Add();
//测试
console.log(A.add());
console.log(A.add(5));
console.log(A.add(6,7));

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108533.html

相关文章

  • JavaScript设计模式与开发实践 | 01 - 面向对象JavaScript

    摘要:在中,并没有对抽象类和接口的支持。例如,当对象需要对象的能力时,可以有选择地把对象的构造器的原型指向对象,从而达到继承的效果。本节内容为设计模式与开发实践第一章笔记。 动态类型语言 编程语言按数据类型大体可以分为两类:静态类型语言与动态类型语言。 静态类型语言在编译时已确定变量类型,动态类型语言的变量类型要到程序运行时,待变量被赋值后,才具有某种类型。 而JavaScript是一门典型...

    suxier 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0
  • javascript面向对象之“多态

    摘要:之前,本质上不能算是一门面向对象的编程语言,因为它对于封装继承多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。所以在中出现了等关键字,解决了面向对象中出现了问题。 ES6之前,javascript本质上不能算是一门面向对象的编程语言,因为它对于封装、继承、多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以让我们以...

    JerryWangSAP 评论0 收藏0
  • JavaScript面向对象编程

    摘要:基本概念面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。使用面向对象编程是为了促进更好的灵活性和可维护性。面向对象与面向过程比较,面向过程更注重过程。 1:基本概念 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。 这句话的意思是:每个对象能够接受信息,处理数据和发送消息给其他对象;这就意味着在这个编程模式下,每一个对象都是一个独立的个体,它可以接收,可以处理,...

    Carbs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<