zoukankan      html  css  js  c++  java
  • javascript中的方法重载

    在很多面向对象的高级语言中,都有方法的重载。而javascript没有方法重载这个概念。但是我们可以通过arguments这个参数来伪装成函数的重载

    在模拟之前我们先看一下代码:

      //表面上没有声明形式参数的函数
            function fun() {          
                alert("示例代码");
            }
            fun("小明", 100, true);//自己写了三个实际参数
    

    通过结果我们看到,即使我们声明函数的时候没有定义形式参数,在调用方法的时候,我们也是可以写实际参数的。(实际上形式参数是写给程序员调用函数时看的)

    我们可以在代码中得到实际参数吗?答案是肯定的:请看代码:

     //表面上没有声明形式参数的函数
            function fun() {
                alert(arguments[0]);//得到第一个实际参数的值。
                alert(arguments[1]);//得到第二个实际参数的值。
                alert(arguments[2]);//得到第三个实际参数的值。
                alert(arguments.length);//得到实际参数的个数。
                alert("示例代码");
            }
            fun("小明", 100, true);//自己写了三个实际参数
    

    通过代码我们就可以知道arguments(内部属性) 本身是一个数组,其作用就是存放方法的实际参数。

    有了以上知识点后,模拟方法重载就有思路了。我们可以通过实际参数的个数来作个判断,从而执行不同的逻辑代码。简单代码如下:

     function fun() {
                if (arguments.length == 0) {
                    alert("执行没有实际参数的代码");
                }
                else if(arguments.length==1)
                {
                    alert("执行传入一个实际参数的代码");
                }
                else if(arguments.length==2)
                {
                    alert("执行传入两个实际参数的代码");
                }
            }
            fun();
            fun("小明");
            fun("小明", "小花");
    
  • 相关阅读:
    day01--计算机硬件基础笔记
    22 Jun 18 Django,ORM
    21 Jun 18 Django,ORM
    20 Jun 18 复习, mysql
    20 Jun 18 Django,ORM
    19 Jun 18 复习, 正则表达式
    19 Jun 18 Django
    15 Jun 18 复习, shutil模块
    15 Jun 18 Django
    14 Jun 18 复习, form表单
  • 原文地址:https://www.cnblogs.com/CodeFaker/p/4010287.html
Copyright © 2011-2022 走看看