当前位置: 首页 > news >正文

js---通过arguments来获取指定参数

通过访问arguments对象的length属性可以获取有多少个参数传递给了函数。

如:每次被调用的时候,输出传入其中的参数个数

function doAdd(){
    alert(arguments.length)
}
doAdd()  //0
doAdd(1)  //1
doAdd(1, 2)  //2
doAdd("string", 1) //2

由此,可以利用这一点,函数能够接受任意个参数参数并分别实现适当的功能。

我们在封装函数的时候,会携带不同的参数,我们想要获取指定的参数,可以通过 arguments[ ] 来拿到

function doAdd(){
    if(arguments.length ==1 ){
        alert(arguments[0])
    }else if(arguments.length ==2 ){
        alert(arguments[0] + arguments[1])
    }
 }
 doAdd(1) //   1
 doAdd(1, 2)  // 3

接下来,我们再来看一个例子,arguments对象可以与命名参数一起使用。

function doAdd(num1, num2){
   if(arguments.length ==1 ){
        alert(num1 + arguments[0])
   }else if(arguments.length ==2 ){
       alert(arguments[1] + num2)
   }
}
doAdd(
1) //2 doAdd(1, 2) // 4

这里需要注意的一点是,两个命名的参数和argumens对象一起使用。由于num1和arguments[0]的值形态,他们可以互换使用。

此外,arguments的值要永远与对应命名参数的值保持同步。

function doAdd(num1,num2){
    arguments[1] = 0;
  alert(num1); // 1 alert(num2); // 0 alert(arguments[
0]) // 1
   alert(arguments[1]) // 0 } doAdd(
1, 2)

函数重写了第二个参数num2,将第二个参数的值改为0,因为arguments对象的值会反应到对应的命名参数上,所以修改argumens[1]的值也就是修改了num2。

 

转载于:https://www.cnblogs.com/renzm0318/p/10346469.html

相关文章:

  • 洛谷P1117 优秀的拆分
  • fzyzojP3979 -- [校内训练20180914]魔法方阵
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • yum命令详解
  • 《天龙八部3D》Unity技术方案揭秘
  • PAT A1050
  • [学习笔记]二项式反演
  • 飞控之卡尔曼滤波浅析
  • CentOS 7 修改主机名
  • [译] Webpack 4 的故事以及如何用正确的方式去最终配置它【更新版】
  • 译米田引理
  • Docker中mysql大小写敏感配置不起作用的问题排查
  • 一份运维监控的终极秘籍!监控不到位,宕机两行泪
  • leetcode386. Lexicographical Numbers
  • 30秒的PHP代码片段(1)数组 - Array
  • 分享一款快速APP功能测试工具
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 08.Android之View事件问题
  • classpath对获取配置文件的影响
  • Java知识点总结(JavaIO-打印流)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Twitter赢在开放,三年创造奇迹
  • 成为一名优秀的Developer的书单
  • 初识MongoDB分片
  • 从伪并行的 Python 多线程说起
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 入门到放弃node系列之Hello Word篇
  • 无服务器化是企业 IT 架构的未来吗?
  • scrapy中间件源码分析及常用中间件大全
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (待修改)PyG安装步骤
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .NET Standard 的管理策略
  • .Net程序帮助文档制作
  • @Not - Empty-Null-Blank
  • [20190113]四校联考
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [AutoSar]BSW_Com02 PDU详解
  • [BJDCTF2020]The mystery of ip
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C++]unordered系列关联式容器
  • [CLickhouse] 学习小计
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件