返回顶部
首页 > 资讯 > 前端开发 > VUE >JavaScript中如何使用参数个数实现重载功能
  • 813
分享到

JavaScript中如何使用参数个数实现重载功能

2024-04-02 19:04:59 813人浏览 八月长安
摘要

小编给大家分享一下javascript中如何使用参数个数实现重载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实例如下:fu

小编给大家分享一下javascript中如何使用参数个数实现重载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

实例如下:

function overload(){ 
    switch(arguments.length){ 
      case 0: 
        console.log("一个朋友都没有"); 
        break; 
      case 1: 
        console.log("有一个朋友"); 
        break; 
      case 2: 
        console.log("有两个朋友"); 
        break; 
      case 3: 
        console.log("有三个朋友"); 
        break; 
      case 4: 
        console.log("有四个朋友"); 
        break; 
      //等等 
    } 
  }

这种方式能实现重载,但是这样的代码比较长,实际开发中情况有时候会很多。所以我们可以用下面的方法。

window.onload=function (){ 
    var cat={ 
      friends:["mimi","pp","gg"] 
    } 
    addMethod(cat,"sayName",function(a,b){ 
      console.log("有两个朋友"); 
    }) 
    addMethod(cat,"sayName",function(){ 
      console.log("一个朋友都没有"); 
    }) 
    addMethod(cat,"sayName",function(a){ 
      console.log("有一个朋友"); 
    }) 
    addMethod(cat,"sayName",function(a,b,c){ 
      console.log("有三个朋友"); 
    }) 
    cat.sayName("xiaoming","nihao"); 
    cat.sayName(); 
    cat.sayName("xiaoming"); 
    cat.sayName("xiaoming","xiaohong"); 
  } 
  //实现重载,利用arguments.length的不同来实现 
  function addMethod(object,name,fn){ 
    var old=object[name]; 
    object[name]=function(){ 
      if(fn.length==arguments.length) 
        return fn.apply(this,arguments); 
      else if(typeof old=='function') 
        return old.apply(this,arguments); 
    } 
  }

这个技巧利用的是闭包,在闭包里作为引用进行存储的不同参数的情况。

实际调用addMethod函数的情况,如下图

JavaScript中如何使用参数个数实现重载功能

为什么会这样呢?

因为闭包的原因,在addMethod的函数中调用了object[name]字面量函数外部的变量old,这使得垃圾回收机制不会回收old,所以old会一直存在内存中,不会消失,我们就是利用的这个特性实现的继承。

下面执行sayName的时候,我们会沿着上边存储的引用依次查找相应的参数,然后找到对应函数来执行。

这种方法还是存在不足:

1.重载只适用于不同数量的参数,但不区分类型、参数或其他东西。

2.这个方法会有函数调用的开销,因为用到了闭包,会占用一些内存。在高性能应用的情况下不适合。

以上是“JavaScript中如何使用参数个数实现重载功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: JavaScript中如何使用参数个数实现重载功能

本文链接: https://lsjlt.com/news/70982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中如何使用参数个数实现重载功能
    小编给大家分享一下JavaScript中如何使用参数个数实现重载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实例如下:fu...
    99+
    2024-04-02
  • javascript如何实现下载功能
    本篇内容主要讲解“javascript如何实现下载功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript如何实现下载功能”吧!javascript实现下载功能的方法:1、通过a标...
    99+
    2023-07-05
  • PHP 函数参数类型重载是如何实现的?
    php不支持函数重载,但可通过技巧实现类似效果:定义具有相同名称的多个函数,每个函数接受不同类型或数量的参数。在函数调用时,根据参数的类型和数量,使用反射机制确定要调用的函数。该技巧可提...
    99+
    2024-04-10
    php 函数重载 代码可读性
  • C++ 函数重载中参数的顺序如何影响重载?
    在 c++++ 函数重载中,参数顺序至关重要,编译器根据参数顺序区分重载函数,即使参数类型相同,顺序不同的函数也会被视为不同的函数。 C++ 函数重载中的参数顺序 函数重载允许创建具有...
    99+
    2024-04-28
    c++ 函数重载
  • ajax如何实现加载数据功能
    这篇文章将为大家详细讲解有关ajax如何实现加载数据功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下xssj.php<script src="jquery-3.2....
    99+
    2023-06-08
  • 如何使用MySQL和JavaScript实现一个简单的数据验证功能
    如何使用MySQL和JavaScript实现一个简单的数据验证功能在Web开发中,数据验证是一个非常重要且必不可少的步骤。它可以确保用户输入的数据符合一定的规则和格式,提升用户体验,同时也能保护数据库的完整性。本文将介绍如何使用MySQL和...
    99+
    2023-10-22
    MySQL 数据验证 JavaScript
  • 如何使用MySQL和JavaScript实现一个简单的数据导出功能
    如何使用MySQL和JavaScript实现一个简单的数据导出功能介绍在日常的开发中,我们经常需要将数据库中的数据导出到外部文件或其他形式的数据存储中,以供进一步处理或分析。本文将介绍如何使用MySQL和JavaScript实现一个简单的数...
    99+
    2023-10-22
    MySQL JavaScript 数据导出
  • 如何使用MySQL和JavaScript实现一个简单的数据分析功能
    如何使用MySQL和JavaScript实现一个简单的数据分析功能MySQL是一种常用的关系型数据库管理系统,而JavaScript是一种常用的脚本语言,结合使用这两种技术,我们可以实现一个简单的数据分析功能。本文将介绍如何通过MySQL和...
    99+
    2023-10-22
    数据分析 MySQL JavaScript
  • C++ 函数重载中参数的数据类型如何影响重载?
    函数重载中参数的数据类型影响解析,匹配过程基于类型。数据类型提升和转换可能改变匹配。void 类型可与任何参数类型匹配。实践中,根据参数类型调用合适的重载函数,实现类型特定的处理。 C...
    99+
    2024-04-27
    c++ 函数重载
  • 详解如何通过JavaScript实现函数重载
    有的同学在开发中可能遇到过一个困扰,但是很少有人去解决这个问题,我这用一个例子展现出来 const searcher = {}; searcher.findAll = () =>...
    99+
    2023-01-12
    JavaScript实现函数重载 JavaScript函数重载 JavaScript 重载
  • javascript中如何获取函数的参数个数
    本篇内容主要讲解“javascript中如何获取函数的参数个数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中如何获取函数的参数个数”吧! ...
    99+
    2024-04-02
  • 如何使用MySQL和JavaScript实现一个简单的数据可视化功能
    如何使用MySQL和JavaScript实现一个简单的数据可视化功能引言:数据可视化在现代信息化时代占据着重要的位置,能够直观地展示数据、分析数据,并帮助我们做出更加明智的决策。本文将介绍如何使用MySQL和JavaScript来实现一个简...
    99+
    2023-10-22
    MySQL JavaScript 数据可视化
  • js模拟如何实现重载以及默认参数
    目录模拟实现重载以及默认参数下面先说实现重载的方法接下来是实现默认参数的方法下面进行一下测试js的函数支持重载吗模拟实现重载以及默认参数 众所周知,js是函数不支持重载和默认参数的,...
    99+
    2024-04-02
  • C++ 函数重载中如何处理默认参数?
    在处理默认参数的函数重载中,编译器优先选择与实际参数最匹配的函数版本,如果没有匹配的函数,会产生歧义错误。为了避免歧义,需要确保默认参数不会导致多个匹配的函数。 C++ 函数重载中默认...
    99+
    2024-04-13
    c++ 函数重载
  • 如何使用MySQL和JavaScript实现一个简单的数据分析报告功能
    如何使用MySQL和JavaScript实现一个简单的数据分析报告功能概述:在如今的信息时代,数据分析和报告已经成为企业决策的重要组成部分。MySQL是一个强大的关系型数据库管理系统,而JavaScript是一种广泛应用于网站开发的脚本语言...
    99+
    2023-10-22
    数据分析 MySQL JavaScript
  • Javascript中如何实现reduce函数查重
    这篇文章给大家分享的是有关Javascript中如何实现reduce函数查重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原代码:var arr="qweqr...
    99+
    2024-04-02
  • C++如何实现函数重载
    这篇文章给大家分享的是有关C++如何实现函数重载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。函数重载函数重载还有一个别名叫函数多态,其实我个人感觉函数多态这个名字更好理解更恰当一些。函数多态是C++在C语言基础...
    99+
    2023-06-25
  • golang如何实现函数重载?
    go 语言不支持传统函数重载,但可以通过以下方法实现类似效果:使用命名函数:为不同参数或返回类型的函数创建唯一名称;使用泛型(go 1.18 及以上):为不同类型参数创建函数的单个版本。...
    99+
    2024-04-29
    golang 函数重载
  • 如何在 Java 接口中实现 JavaScript 重定向功能?
    Java 和 JavaScript 是两种不同的编程语言,但是它们经常会在一起使用。当我们需要在 Java 接口中实现 JavaScript 重定向功能时,我们可以使用一些技巧来实现。在本文中,我们将介绍如何在 Java 接口中实现 Jav...
    99+
    2023-07-10
    接口 重定向 javascript
  • javascript不定数量参数如何使用
    今天小编给大家分享一下javascript不定数量参数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在 Javasc...
    99+
    2023-07-06
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作