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。
js---通过arguments来获取指定参数的更多相关文章
- 关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url
在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚.所以没办法,于是自己花了一些时间写了一个: 1 /** 2 * 删除URL中的指定参数 3 * @param {*} url 4 * @pa ...
- js函数arguments与获取css样式方法
函数传参,当参数的个数不定时,可以使用arguments:表示实参集合 arguments.length=实参个数 获得css样式方法: getComputedStyle()方法---->得到的 ...
- JAVA从URL参数链接中获取指定参数的值
import java.util.HashMap; import java.util.Map; /** * @author yvioo */ public class UrlUtils { /** * ...
- js 路径改变时获取url参数
当我们在使用react或vue的router作路由跳转时,为了保持菜单与地址栏状态一致,我们可以使用window.onhashchange捕获#后面的变化 window.onhashchange = ...
- JS字符串截取(获取指定字符后面的所有字符内容)
function getCaption(obj){ var index=obj.lastIndexOf("\-"); obj=obj.substring(index ...
- vue获取路由地址栏url里面的指定参数
this.$route.query.gid //gid是获取指定参数的名字
- js 获取 url 参数
/** * 根据页面地址获取所有参数对象 * @return Object{} 返回所有参数 * ------------------------------ * 根据页面地址获取指定参数对象 * @ ...
- js获取url参数、图片转本地base64跨域问题
获取url参数是经常需要用的一个方法,url上的参数可以让我们的程序执行更灵活. 图片转本地也是很实用的,因为海报合成通常只支持本地. 下面我们来看看这些功能的实现: 获取所有参数,采用split拆分 ...
- javascript获取URL参数和参数值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- git与pycharm结合使用
一.配置pycharm 在pycharm中选择file-->setting,在弹出的窗口中选择version control,选择git,配置git的路径 将当前项目关闭 在弹出的窗口中选择ch ...
- wx小程序开发 1:小程序代码构成
官网学习地址:https://developers.weixin.qq.com/miniprogram/dev/quickstart/basic/introduction.html 1: 2:待续.. ...
- mysql修改原始密码
后期修改数据库用户的密码初始密码为自动生成,我们需要情况原始密码,再修改密码,mysqldmin -u root 只能用在修改为原始密码之后使用systemctl stop mysqldvim /et ...
- 【udacity】机器学习-神经网络
Evernote Export 1.神经网络 神经元 细胞的主体称为细胞体,然后有轴突.突触 他们构建的方式是可以调整的 我们会有一些输入的放电信号视为放电频率或输入的强度 X1w1X2w2X ...
- javascript 数组 常用方法
前言 学学忘忘 闲来做个笔记 整理下数组常用方法. Array 数组常用方法 创建数组的基本方式有两种 1.第一种是使用Array构造函数, var arr = new Array(); ...
- Win32_Window(day02)
--- 窗口创建函数 ---#include <Windows.h> //窗口处理函数 HINSTANCE g_hIns; LRESULT CALLBACK WndProc(HWND hW ...
- linux下最简单的端口转发工具
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 官网地址http://www.boutell.com/rinetd 软件下载wget http://www.boutell.com/ ...
- GitLab 7.5.3 CentOS7安装和SMTP配置
CentOS 7安装GitLab还是比較简单的,依照官方文档的提示一步一步操作下来.就一个地方须要改动. 參考:GitLab安装说明 在安装好以后,执行 gitlab-ctl reconfigure ...
- cdev_init和register_chrdev区别
--- 01:include/linux/fs.h static inline int register_chrdev(unsigned int major, const char *name, co ...
- [BZOJ 2100] Apple Delivery
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2100 [算法] Answer = min{ dist(PB,PA1) + dist( ...