Javascript函数中的arguments(图文教程)

在javascript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。下面这篇文章主要介绍了关于javascript函数中的arguments面貌以及如何转化为数组的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

一、arguments的面貌

在javascript中所有的函数内部都包含了一个隐藏的变量叫arguments;它存放着所有传递到这个函数中的参数;

那么我们打开实例看看arguments的输出形式

  1. (function fn(){ console.log(arguments)})(1,2,3,4)

登录后复制

Javascript函数中的arguments(图文教程)

结果好像是类似数组的形式打印在控制台,相信大多数人包括我看到这种输出就会认为arguments是一个数组,那么既然是数组就可以用数组的一些方法了吧,再看下一个例子;

立即学习“Java免费学习笔记(深入)”;

  1. (function fn(){ arguments.push(5) console.log(arguments)})(1,2,3,4)

登录后复制

Javascript函数中的arguments(图文教程)

结果报错了- -!;(在项目中我就是踩到了这个坑);

那我们就会有一个疑惑了,既然是数组为什么不能用push方法呢,其他的像pop,slice也不行么,是的,都不行,虽然arguments也能通过下标的形式获取到对应位置的参数,当本质上不算是真正的数组;

我们通过instanceof打印看看它是不是Array的孩子

  1. (function fn(){ console.log(arguments instanceof Array)})()

登录后复制

Javascript函数中的arguments(图文教程)

果不其然真不是数组,那么我们就会联想到它就是个对象了;

虽然它也能用for循环遍历到里面的参数,但把它转为真正的数组才是更好的选择;

二、转化为数组

转化的方法有很多,对象冒充的方式传递给Array.prototype或遍历push到空数组或传递给另一个函数等等。。都可以完成,下面简单介绍几个转化的方法,遍历push到空数组的方法就不细讲了;

第一种方法:

  1. (function fn(){ var arr = Array.prototype.slice.call(arguments) arr.push(5) console.log(arr)})(1,2,3,4)

登录后复制

Javascript函数中的arguments(图文教程)

这种转化方式比较慢,在性能不好的情况下不推荐这种写法;

第二种方法:

  1. function fn() { fnArr.apply(null, arguments);}function fnArr(a,b,c,d) { ···}

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JS获取url参数并发送json格式POST步骤详解

js实现前后台相互传递Json代码

$http服务Post方法传递json参数案例详解

以上就是Javascript函数中的arguments(图文教程)的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
编程技术

javascript判断回文数详解及实现代码(图文教程)

2025-3-8 9:26:05

编程技术

关于在不同页面之间实现参数传递的几种方式(详细为你解答)

2025-3-8 9:26:13

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索