返回顶部
首页 > 资讯 > 精选 >js模拟怎么实现重载以及默认参数
  • 486
分享到

js模拟怎么实现重载以及默认参数

2023-06-30 13:06:26 486人浏览 独家记忆
摘要

本篇内容主要讲解“js模拟怎么实现重载以及默认参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js模拟怎么实现重载以及默认参数”吧!模拟实现重载以及默认参数众所周知,js是函数不支持重载和默认

本篇内容主要讲解“js模拟怎么实现重载以及默认参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js模拟怎么实现重载以及默认参数”吧!

模拟实现重载以及默认参数

众所周知,js是函数不支持重载和默认参数的,但是我们可以使用一些其他方法来模拟这个方法的实现。

  • 首先看一下重载的定义:函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。

  • 以及默认参数的定义:默认参数指的是当函数调用中省略了实参时自动使用的一个值。

那么如何实现这两个功能呢,一个很简单的方法就是使用arguments来进行模拟。

下面先说实现重载的方法

function overLoad(){//用这样的方法模拟重载if(arguments[0]){//如果存在第一个参数if(arguments[1]){//如果第一个参数第二个参数都存在//to do...alert(arguments[0]+arguments[1]);}else{//如果只有第一个参数alert(arguments[0]);//to do...}}else{//如果无参alert("null");//to do...}}

接下来是实现默认参数的方法

function defaultArg(){//用这样的方法模拟默认参数    var a = arguments[0]?arguments[0]:"hello";//第一个参数的默认值为hello    var b = arguments[1]?arguments[1]:"world";//第二个参数的默认值为world    //...    alert(a+b);}

下面进行一下测试

//重载测试overLoad();//nulloverLoad("hello ");//hello overLoad("hello ","world");//hello world//默认参数测试defaultArg();//hello worlddefaultArg("你好 ");//你好 worlddefaultArg("你好 ","世界");//你好 世界

js的函数支持重载吗

javascript的函数支持重载吗?对于这个问题,主要有两个点,第一,JavaScript的函数;第二,重载。

首先,说一下重载。所谓重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。所以说,重载主要需要两点:第一,同样的函数名。第二,不同的函数参数。

明确了重载的定义之后,我们再回到JavaScript这里。追本溯源,现在一说到JavaScript,我们就可以联想到ECMAScript,即JavaScript的标准。那么,这个标准里面对函数做出了那些规范呢?

首先,ECMAScript是没有函数签名的概念的,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可能做到的。

其次,如果在ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数,如下:

function add(num){    return num+1;}function add(num){    return num+2;}var result = add(4);  //结果为6

在上面的例子中,add()函数被定义了两次,然而,当我们调用他的时候,却直接调用了第二个函数,这说明在JavaScript中,后定义的函数会覆盖先定义的函数。

说到这里,是不是就可以判定JavaScript不支持函数重载了呢?

让我来介绍一下JavaScript里面的一个arguments对象。首先,ECMAScript函数的参数与其他语言的函数参数有一点不同。ECMAScript函数不介意传进来的参数个数和类型。也就是说,在你定义了函数只接受两个参数之后,你仍然可以在调用的时候传递零或多个参数。这并不会报错。原因就在于arguments对象。ECMAScript中,函数的参数始终是存放在一个数组中,而通过arguments对象,就可以访问到这个数组。所以,只需要使用length属性就可以确定调用函数时传递了多少个参数。

说到这里,我们可以来尝试这样写:

function add(num1, num2){    if(arguments.length == 1){        alert("你输入的只有一个数字:"+arguments[0]+" 请重新输入");    }else if(arguments.length == 2){        alert("你输入数字的和为:" + arguments[0]+arguments[1]);}}

通过这个例子,我们可以看出,通过检查传入函数中参数的数量,JavaScript函数可以做出不同的反应,这可以间接达到重载的目的。

所以,JavaScript是可以模仿函数的重载的。 

到此,相信大家对“js模拟怎么实现重载以及默认参数”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: js模拟怎么实现重载以及默认参数

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

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

猜你喜欢
  • js模拟怎么实现重载以及默认参数
    本篇内容主要讲解“js模拟怎么实现重载以及默认参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js模拟怎么实现重载以及默认参数”吧!模拟实现重载以及默认参数众所周知,js是函数不支持重载和默认...
    99+
    2023-06-30
  • js模拟如何实现重载以及默认参数
    目录模拟实现重载以及默认参数下面先说实现重载的方法接下来是实现默认参数的方法下面进行一下测试js的函数支持重载吗模拟实现重载以及默认参数 众所周知,js是函数不支持重载和默认参数的,...
    99+
    2024-04-02
  • js默认文本框粘贴事件怎么实现
    本文小编为大家详细介绍“js默认文本框粘贴事件怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“js默认文本框粘贴事件怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。先上代码  &...
    99+
    2023-07-05
  • C++中memcpy函数的使用以及模拟实现
    目录前言一、什么是memcpy二、memcpy与strcpy的区别1.strcpy2.memcpy三、模拟实现memcpy总结前言 memcpy函数如何使用,以及如何实现我们自己的m...
    99+
    2024-04-02
  • Python中怎么实现模块重载
    本篇文章为大家展示了Python中怎么实现模块重载,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。环境准备新建一个 foo 文件夹,其下包含一个 bar.py 文件$ tree f...
    99+
    2023-06-16
  • JS怎么模拟实现ECMAScript5新增的数组方法
    小编给大家分享一下JS怎么模拟实现ECMAScript5新增的数组方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ECMAScript5 新增了十个数组方法,这些方法只有在ie9及以上浏...
    99+
    2024-04-02
  • js数组去重怎么实现
    这篇文章主要介绍“js数组去重怎么实现”,在日常操作中,相信很多人在js数组去重怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js数组去重怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!方法...
    99+
    2023-07-02
  • JS new操作原理及手写函数模拟实现示例
    目录引言原理手写函数模拟 newv1 基本实现v2 考虑参数类型v3 Object.prototype.__proto__ 的替代方案v4 使用 ES6 语法实现v5 考虑 ES6 ...
    99+
    2024-04-02
  • javascript怎么实现函数重载
    这篇“javascript怎么实现函数重载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“j...
    99+
    2024-04-02
  • Typescript函数重载怎么实现
    这篇文章主要介绍“Typescript函数重载怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Typescript函数重载怎么实现”文章能帮助大家解决问题。函数重载的优点函数重载的最大优点在于...
    99+
    2023-07-06
  • c++函数的重载怎么实现
    这篇文章主要讲解了“c++函数的重载怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++函数的重载怎么实现”吧!1.函数重载概述作用:函数可以相同,提高复用性函数重载必须满足的条件:...
    99+
    2023-06-29
  • 怎么重写document.write实现无阻塞加载JS广告
    本篇内容主要讲解“怎么重写document.write实现无阻塞加载JS广告”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么重写document.write实...
    99+
    2024-04-02
  • 怎么使用js实现模拟鼠标拖拽事件
    本篇内容介绍了“怎么使用js实现模拟鼠标拖拽事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这次的效果图...
    99+
    2024-04-02
  • js怎么实现嵌套数组重排序
    这篇文章主要介绍“js怎么实现嵌套数组重排序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js怎么实现嵌套数组重排序”文章能帮助大家解决问题。总共遇到两个问题:1、JS中for循环输出同一变量值的问...
    99+
    2023-06-29
  • 怎么用vue代码实现图片加载与显示默认图片
    这篇文章主要讲解了“怎么用vue代码实现图片加载与显示默认图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用vue代码实现图片加载与显示默认图片”吧!HTML:<div ...
    99+
    2023-07-04
  • JS前端怎么模拟Excel条件格式实现数据条效果
    这篇文章主要介绍“JS前端怎么模拟Excel条件格式实现数据条效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS前端怎么模拟Excel条件格式实现数据条效果”文章能帮助大家解决问题。需求背景最近...
    99+
    2023-07-05
  • c语言怎么实现函数重载
    在C语言中,没有直接支持函数重载的特性。函数重载是一个面向对象编程语言(如C++)提供的特性,它允许定义名称相同但参数列表不同的多个...
    99+
    2023-10-25
    c语言
  • js怎么模拟实现淘宝网商品放大镜效果
    小编给大家分享一下js怎么模拟实现淘宝网商品放大镜效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:(实例图片由自己添加...
    99+
    2024-04-02
  • C语言怎么模拟实现strlen函数
    这篇文章主要讲解了“C语言怎么模拟实现strlen函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么模拟实现strlen函数”吧!一.strlen函数的介绍1.strlen函数的声...
    99+
    2023-06-29
  • vue.js怎么实现拉加载以及下拉刷新功能
    本篇内容主要讲解“vue.js怎么实现拉加载以及下拉刷新功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue.js怎么实现拉加载以及下拉刷新功能”吧!上拉加...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作