位置: 编程技术 - 正文

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

  • 合同执行过程中应该怎么做
  • 每月进项税额怎么算
  • 一般纳税人材料销售税率
  • 其他应收款属于应收账款吗
  • 填专项扣除对个人还是公司受益
  • 补偿金需要缴纳个税吗?
  • 法人把自己的车租给公司交什么税
  • 政府无偿划拨土地涉及的税费
  • 结算业务申请书和转账支票区别
  • 私车公用可以企业所得税税前扣除吗
  • 事业单位自筹事业人员
  • 企业所得税营业税金及附加
  • 网络技术服务费 税率
  • 发票查询显示无数据怎么回事
  • 分包发票怎么开对方可以差额纳税
  • 退税入其他收益需要再缴税吗
  • 非公司员工可以交社保吗
  • 预提费用对应
  • 存货中的生产成本是指
  • 不占股权投资如何做账
  • 信用减值损失借方余额在利润表中
  • 财政拨款税务处理方法
  • 公积金代扣时会扣多少
  • 什么是补提或者计提
  • 从银行提取备用金填制什么凭证
  • 出差补助没有发票可以直接入账吗
  • 民间非营利组织有哪些
  • 进程调度算法例题分析
  • php入门基础教程
  • 企业所得税具体纳税筹划案例
  • 最好用的无人品牌子
  • 酒店损益类科目包括哪些
  • php7多线程支持如何
  • 个体工商户使用个人二维码收款违法吗
  • 固定资产盘盈的账务处理
  • 汇算清缴所得税是什么意思
  • 企业利润分配的通常去向包括
  • 软件开发企业如何计算利润
  • php网站首页的源码在哪里
  • mysql profiles
  • 公司车辆固定资产管理办法
  • 收回已冲销的应收账款会计分录
  • 固定资产的弃置费用
  • 公司注册后一直没有申报
  • SQL Server 2008 R2 为用户权限分配的操作步骤
  • 免税所得包括哪些
  • 个人去税务局开劳务费怎么开
  • 个体工商户是什么意思
  • 税控系统技术维护费的申报抵扣方法
  • 置换的房产如何操作
  • 怎么对外投资
  • 理财到期的会计怎么做账
  • 培训公司会计账务处理
  • 哪些发票可以抵减
  • 纳税人可以委托税务人员办理纳税申报吗
  • 服务费税额部分计算公式
  • 保洁阿姨工资怎么扣税
  • 国家医疗保障机构
  • 商业企业的期间费用包括
  • 不用鲁大师
  • Ubuntu系统怎么设置双屏
  • centos6.5共享文件夹
  • porteus中文版下载
  • 两台mac怎么同步
  • linux yum安装软件命令
  • opera installer
  • 如何配置sendmail
  • win8鼠标右键无法弹出菜单
  • win10多用户独立
  • 批处理文件的编写
  • 使用linux开发
  • css中标签
  • jquery easy ui
  • 关于jquery的事件冒泡,以下描述正确的是
  • javascript例题
  • JavaScript File API文件上传预览
  • javascript Window及document对象详细整理
  • 税务局申请企业破产被告
  • 江苏税务登录密码是几位
  • 合肥哪里可以注销电信卡
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设