javascript实现方法重载机制

javascript支持方法的重写,但是没有方法重载机制,那么可以模仿重载机制吗?答案是肯定的。

(在这里补充一下重写和重载的区别,笔者曾几何时一度混淆。重写是子类覆盖父类的方法,方法名/参数列表/函数返回类型 必须相同;重载是同一个类中多个方法实现,方法名必须相同,参数列表必须不同,返回类型可以不同 )

利用全局变量arguments可以实现,arguments是数组,通过判断传入参数的长度可以访问到参数列表的值。

举例说明:

function doAdd(){
        if(arguments.length==1){
          alert(arguments[0]+10);
        }else if(arguments.length==2){
          alert(arguments[0]+arguments[1]);
        }
      }

      doAdd(10); //outputs "20"
      doAdd(30,20);//outputs "50"
时间: 2024-10-08 20:04:33

javascript实现方法重载机制的相关文章

javascript中的方法重载

在很多面向对象的高级语言中,都有方法的重载.而javascript没有方法重载这个概念.但是我们可以通过arguments这个参数来伪装成函数的重载 在模拟之前我们先看一下代码: //表面上没有声明形式参数的函数 function fun() { alert("示例代码"); } fun("小明", 100, true);//自己写了三个实际参数 通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数的.(实际上形式参数是

Java连载29-方法执行内存分析、方法重载

一.JVM包含三个内存区:栈内存.堆内存.方法区内存 二.注意点 (1)在MyEclipse中字体是红色的是一个类的名字,并且这个类除了我们自定义的类是JavaSE类库中自带的 (2)其实JavaSE类库中自带的类,例如:String.class\System.class,这些类的类名也是标识符 (3)只要是类名就一定是标识符 内存分析举例: public class D29_{ public static void main(String[] args) { int a = 10; int b

要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!

有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写"无聊"的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少?不到万吧:有人说,你别妄想在写作上面知识变现了,因为你写的文章真的很不优秀,我都不爱看! 我想说,你们说的话我都不爱听!我也懒得反驳,因为我没有成功,也就没有话语权,多说无益.我只想做一名执拗的程序员,静静地写文,哪怕只有一个读者--有时候,做一件事,并不是想要结果,仅仅只是因为心底那种

javascript方法重载惹的祸

先贴出代码,看看执行结果会是什么? function ShowMsg() { //函数1 this.sure = function () { alert("ok"); }; //函数2 this.sure = function (msg) { alert(msg); }; } var showMsg = new ShowMsg(); showMsg.sure(); 看上面的代码,本以为是两个方法重载的函数,执行后会弹出"ok"的信息.实则却弹出一个空字符的框. 原来

JavaScript基础12——js的方法重载

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>js的方法重载</title> 6 <script type="text/javascript"> 7 // JavaScript不存在方法重载 8 // 通过arguments数组来模拟方法重载的效果 9 function add() { 10

javascript 之 prototype继承机制

理解Javascript语言的继承机制 javascript没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承. 1.引言 1994年,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动.工程师Brendan Eich 负责开发这种新语言.他觉得,没必要设计得很复杂,这种语言只要能够完

JavaScript中类的实现机制

理解类的实现机制在前面已经讲过,在JavaScript中可以使用function关键字来定义一个“类”.现在介绍如何为类添加成员.其过程很简单,在函数内通过this指针引用的变量或者方法都会成为类的成员,例如: function class1(){ var s=”abc”; this.p1=s; this.method1=function(){ alert(“this is a test method”); } } var obj1=new class1(); 当通过new class1()获得

【译】JavaScript 创建对象: 方法一览与最佳实践

本文是我在众成翻译上认领并翻译的:JavaScript 创建对象: 方法一览与最佳实践 在JavaScript中“创建对象”是一个复杂的话题.这门语言提供了很多种创建对象的方式,不论新手还是老手都可能对此感到无所适从,不知道应该选择哪一种.不过,尽管创建对象的方法很多,看上去语法差异也很大,但实际上它们的相似性可能比你所以为的要多.本文将带领你踏上一段梳理对象创建方法的旅程,为你揭示不同方法之间的依赖与递进关系. 对象字面量 我们的第一站毫无疑问就是创建对象最简单的方法,对象字面量.JavaSc

JavaScript 原型与继承机制详解

引言 初识 JavaScript 对象的时候,我以为 JS 是没有继承这种说法的,虽说 JS 是一门面向对象语言,可是面向对象的一些特性在 JS 中并不存在(比如多态,不过严格来说也没有继承).这就困惑了我很长的时间,当我学习到 JS 原型的时候,我才发现了 JS 的新世界.本篇文章讲解了 JavaScript new 操作符与对象的关系.原型和对象关联(也就是俗称的继承)的原理,适合有一定基础的同学阅读. 一.JavaScript 的类与对象 许多书籍上都会说到如何在 JS 当中定义“类”,通