位置: 编程技术 - 正文

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总结笔记)

  • 工资计提金额有误怎么调整
  • 购买研发设备的会计分录
  • 公司福利可以抵扣所得税吗
  • 有两处收入的怎么报个税汇算清缴
  • 公司收到劳务发票
  • 投资性房地产转为非投资性房地产
  • 低值易耗品费用包括哪些
  • 物流企业会计核算的主要内容
  • 母公司为子公司担保是利好还是利空
  • 已经报销的发票还会查吗
  • 所得税汇算清缴退税会计分录怎么做
  • 抵押车贷款会不会扣车
  • 厂开办期间的工作有哪些
  • 银行利息收入要开票吗
  • 转让知识产权的本人申明
  • 预付货款样品费怎么入账
  • 个税汇算清缴申报错误怎么办
  • 怎么打开资源管理器
  • 拨号的用户名
  • 电脑右下角弹窗广告怎么彻底清除
  • 华为mate40怎么打开开发者选项
  • 息税前利润变化率计算
  • 贷款贴息是什么政策
  • 预收账款可计入
  • 资源管理器被关闭了怎么恢复
  • linux模块的概念
  • 系统托盘无法隐藏文件夹
  • 项目部可以直接给工人结账吗
  • 合并财务报表抵消损益怎么理解
  • 发行股票溢价计入哪里
  • 企业生产经营管理费用包括
  • 前端工程搭建
  • 成品油批发和零售许可
  • 计算机视觉opencv项目简单代码
  • vue快速入门与实战开发
  • 当月的印花税什么时候申报
  • python如何在画布上写字
  • 灵活就业收入是填多好还是填少好
  • 暂估入库结转成本税务规定
  • 发票升位需要什么资料
  • 帝国cms功能
  • ps调色的作用
  • 公司出现质量问题员工怎么处理
  • json转pojo
  • 企业所得税营业收入怎么填
  • SQL Server 2008 R2 应用及多服务器管理
  • 小企业长期债券投资入账价值
  • 工程施工与工程结算账务处理
  • 清卡和抄报税是什么意思
  • 加工费的进项发票摘要写什么
  • 以旧换新价格怎么确认
  • 小微企业可以享受六税两费吗
  • 社会保险费结算表怎么打印
  • 股权投资如何记账
  • 客人在酒店
  • 结转公允价值变动
  • 清算后剩余财产股东拒收怎么办
  • 负数发票要给税务局吗
  • 机器设备进项税率
  • 服务费税额部分计算公式
  • 公司注销往来账要消吗
  • 残保金是否为强制缴纳
  • 杭州租房补贴社保断缴影响
  • win sth
  • windows域环境搭建
  • xp系统如何删除用户
  • centos配置IP地址
  • ubuntucommand not found
  • ps到底怎么用
  • centos 7 远程桌面
  • windows下合并分区
  • win7共享设置(详细图文步骤)
  • Android OpenGL ES 入门
  • opengl怎么学
  • python中字符
  • shell脚本定时执行命令
  • junit 原理
  • js script跨域
  • 怎么查税务是否实名认证
  • 汕头汕尾什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设