位置: 编程技术 - 正文

Javascript学习笔记之函数篇(四):arguments 对象(javascript总结笔记)

编辑:rootadmin

推荐整理分享Javascript学习笔记之函数篇(四):arguments 对象(javascript总结笔记),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript教程推荐知乎,javascript入门教程,javascript教程,javascript学习指南,javascript学习指南,javascript学习指南,javascript入门教程,javascript教程推荐知乎,内容如对您有帮助,希望把文章链接给更多的朋友!

每一个 Javascript 函数都能在自己作用域内访问一个特殊的变量 - arguments。这个变量含有一个传递给函数的所有参数的列表。arguments 对象不是一个数组。尽管在语法上它跟数组有相同的地方,例如它拥有 length 属性。但它并不是从 Array.prototype 继承而来,实际上,它就是一个对象。因此,我们不能直接对 arguments 使用一些数组的方法,例如 push, pop 或 slice 等。 所以为了使用这些方法,我们就需要将其转换为一个真正的数组。

转化为数组

下面的代码将会返回一个包含 arguments 对象所有元素的数组。

Array.prototype.slice.call(arguments);由于转化的速度很慢,所以在性能要求严格的程序中不建议这样做。

传递参数

下面是一种比较推荐的方法,将 arguments 对象从一个函数传递到另一个函数。

Javascript学习笔记之函数篇(四):arguments 对象(javascript总结笔记)

另外还有一个比较巧妙的方法,就是同时使用 call 和 apply 快速创建一个解绑的外层方法。

函数形参和 arguments 属性的关系

arguments 对象为它自身属性和函数的形参都创建了 getter 和 setter 方法。因此,修改函数的形参会影响对应的 arguments 对象的属性值,反之亦然。

性能问题

arguments 只在两种情况下不会被创建,一是在函数内部被声明为局部变量,二是当做函数的形参。其他情况,arguments 对象总是会被创建。由于 getter 和 setter 方法总是会随着 arguments 对象的创建而创建,因此使用 arguments 对性能本身几乎没有影响。然而,有一种情形会严重影响 Javascript 的性能,那就是使用 arguments.callee。

在上述代码中,foo 函数不再是一个简单的内联扩展,因为它需要知道它自身以及它的调用者(caller)。这不仅抵消了内联扩展所带来的性能提升,同时也破坏了函数的封装性,因为函数本身可能需要依赖于一个特定的调用背景。因此,建议大家尽量不要使用 arguments.callee。

标签: javascript总结笔记

本文链接地址:https://www.jiuchutong.com/biancheng/384805.html 转载请保留说明!

上一篇:Javascript学习笔记之 函数篇(三) : 闭包和引用(javascript怎么学)

下一篇:Javascript学习笔记之函数篇(五) : 构造函数(javascript总结笔记)

  • 定额税改为查账征收,可以弥补上年度亏损吗
  • 印花税减免需要什么材料
  • 小规模城建税和教育费附加怎么算
  • 业务招待费是否可以抵扣进项税
  • 更正申报多交的个税
  • 留存收益资本成本率计算公式
  • 网上报税需要准备什么资料
  • 个体工商户生产经营所得怎么申报
  • 房地产企业开发间接费用包括哪些
  • 应收票据周转率高
  • 公司给客户退款会计分录
  • 子公司可否将母公司注销
  • 发票纳税人识别号错了能重新开吗
  • 增值税普通纳税人税率
  • 酒店收到物品损失怎么办
  • 汇兑差额会计处理
  • 附加税费减免性质代码
  • 财务报表申报完可以修改吗
  • 企业残疾人保障金的缴纳标准
  • 预收培训费怎么确认增值税
  • 苹果手机miracast在哪里找到
  • 承兑汇票还款
  • 车船税没有发票能进账吗
  • compaq-rba.exe是哪个方面的进程 作用是什么 compaq-rba进程查询
  • vue.js前端
  • PHP:proc_terminate()的用法_命令行函数
  • 不给佣金
  • php实验报告
  • 小程序自定义tabbar创意动画
  • php获取ipv6地址
  • 一般纳税人能开1%的发票吗
  • 运输中合理损耗计入采购成本
  • javascript保留字有哪些
  • vuecdn方式引入
  • 为什么生产工人工资不属于固定成本
  • vue之间的组件通信
  • 制造费用的主要内容
  • 非税收入定额票据可以报销吗去什么地方报销
  • 汽车4s店厂家返修流程
  • 个人对公付款
  • 定额备用金制度报销时用什么科目
  • java基础介绍
  • 工程产值是怎么算的
  • 长期待摊的装修费什么时候入账
  • 预缴所得税年底处理账务吗
  • 增值税发票内容填写不全应如何进行处理?
  • 保险费用缴纳
  • 商场收取租户电费合法吗
  • 坏账准备如何计算
  • 利税总额计算公式表
  • 补开以前年度发票
  • 进项大于销项的原因
  • WIN10系统中WPS字体颜色浅
  • windowsxp的安装方法
  • windows xp 任务栏在右边
  • 深度u盘装xp系统教程
  • Linux系统防火墙的命令
  • helppane是什么应用程序
  • ubuntu系统安装程序
  • macos桌面
  • linux中修改root密码
  • win8怎么样的
  • windows7电脑怎么变快
  • linux批量清空文件内容
  • win7系统电脑蓝牙在哪里
  • win7定时静音
  • linux系统怎么查看防火墙状态
  • 百分比的介绍
  • node 发邮件
  • dos命令 获取文件名
  • Android 获取网络时间
  • three.js typescript
  • 微信内置浏览器怎么清除缓存
  • android broadcast
  • 如何用python编写一个程序
  • js点击按钮实现登陆网页
  • 税务总局机关
  • 农村报账员的基本职责
  • 四川地税务局官网
  • 如何查询医院是否有怀孕建档名额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设