• 技术文章 >web前端 >js教程

    javascript中通过arguments参数伪装方法重载_javascript技巧

    2016-05-16 16:34:41原创552
    在很多面向对象的高级语言中,都有方法的重载。而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("小明", "小花");
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:方法重载
    上一篇:javascript学习笔记(三)BOM和DOM详解_基础知识 下一篇:Node.js 的异步 IO 性能探讨_node.js
    Web大前端开发直播班

    相关文章推荐

    • 浅析Angular+rxjs怎么实现拖拽功能?• 值得了解的几个实用JavaScript优化小技巧• JavaScript学习理解之JSON(总结分享)• 你能搞懂JS的this指向问题吗?看看这篇文章• 一起聊聊JavaScript函数式编程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网