当前位置: 首页 > 面试题库 >

JavaScript中的方法重载

云曦之
2023-03-14
问题内容

我在Javascript代码中使用以下方法重载。

function somefunction()
{
    //1st function
}

function somefunction(a)
{
   //2nd function
}

function somefunction(a,b)
{
   //3rd function
}

somefunction(); // function call goes here

我不明白的是,如果我调用somefunction()javascript应该调用第一个函数,但是问题是javascript实际上调用了第三个函数。这是为什么?如何调用第一和第二函数?这是什么原因呢?有没有一种合适的方法可以在Javascript中实现方法重载?行业标准是什么?


问题答案:

JavaScript不支持方法重载(如Java或类似方法),您的第三个函数将覆盖之前的声明。

而是通过argumentsobject支持变量参数。你可以做

function somefunction(a, b) {
    if (arguments.length == 0) { // a, b are undefined
        // 1st body
    } else if (arguments.length == 1) { // b is undefined
        // 2nd body
    } else if (arguments.length == 2) { // both have values
        // 3rd body
    } // else throw new SyntaxError?
}

你也可以只检查typeof a =="undefined"等,这将允许呼叫somefunction(undefined),其中arguments.length1。这可能允许使用各种参数进行轻松调用,例如,当您可能有空变量时。



 类似资料:
  • 本文向大家介绍JavaScript中的方法重载实例,包括了JavaScript中的方法重载实例的使用技巧和注意事项,需要的朋友参考一下 .NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢? Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的

  • 本文向大家介绍JavaScript中的startsWith()方法的重要性是什么?,包括了JavaScript中的startsWith()方法的重要性是什么?的使用技巧和注意事项,需要的朋友参考一下 要知道是使用特定字符开头的字符串还是使用indexOf()方法。但是在高级应用程序中,此方法已过时。因此,ES6为我们提供了startsWith()方法来执行那些高级任务。 在下面的示例中,使用Ind

  • 本文向大家介绍JavaScript中的CloneNode()方法?,包括了JavaScript中的CloneNode()方法?的使用技巧和注意事项,需要的朋友参考一下 CloneNode() 这是一种用于将元素从一个列表克隆到另一个列表的方法。由javascript提供的cloneNode()方法创建节点的副本并返回克隆。它可以克隆所有属性及其值。  语法 示例 在下面的示例中,首先创建了两个列表

  • 本文向大家介绍_without()方法在JavaScript中的重要性是什么?,包括了_without()方法在JavaScript中的重要性是什么?的使用技巧和注意事项,需要的朋友参考一下 _without()  此方法位于javascript的underscore.js库中。它带有两个参数,并从第一个数组中删除第二个数组中存在的元素。它不理会值是true 还是false,它一个接一个地检查每个

  • 本文向大家介绍JavaScript中数组去除重复的三种方法,包括了JavaScript中数组去除重复的三种方法的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,具体方法如下所示: 方法一:返回新数组每个位子类型没变 方法二:类似于法一,但本农觉着法一更易于理解 方法三:比前两个更易于理解但是返回的新数组每个位子的number类型变为string类型了!!关键时刻得处理 以上是小编给大家介绍的

  • 本文向大家介绍JavaScript数组去重的五种方法,包括了JavaScript数组去重的五种方法的使用技巧和注意事项,需要的朋友参考一下 javascript数组去重是一个比较常见的需求,解决方法也有很多种,网上都可以找到答案的,下面小编给大家整理了一份关于同类型的数组去重的方法,先给大家介绍下简单实现思路。 思路: 遍历数组,一一比较,比较到相同的就删除后面的 遍历数组,一一比较,比较到相同的