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("小明", "小花");
    
  • 相关阅读:
    ios修改了coredata数据结构后,更新安装会闪退
    iOS开发系列--UITableView全面解析
    iOS七种手势
    iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义
    iOS学习必须了解的七大手势
    iOS中respondsToSelector与conformsToProtocol的相关理解和使用
    iOS-MBProgressHUD使用
    ios学习--第三方框架-MBProgressHUD以及扩展
    Problem 2169 shadow
    測试加入多级文件夹篇
  • 原文地址:https://www.cnblogs.com/CodeFaker/p/4010287.html
Copyright © 2011-2022 走看看