位置: 编程技术 - 正文

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

  • 房产税的计税依据是含税还是不含税
  • 增值税发票能不能报销
  • 个人所得税六项专项附加扣除是什么
  • 进口货物的完税价格不包括
  • 暂存凭证怎么改成记字
  • 增值税三级明细科目包括
  • 邀请客户参加公司会议
  • 员工超过万人公司
  • 预付软件款的分录
  • 企业所得税营业税金及附加包括
  • 盈余公积未分配利润
  • 销售之后发生销货折让收到红字发票如何做账?
  • 购买的旧机械设备怎么办
  • 补充医疗保险能自己交吗
  • 违约金收入需要缴纳印花税吗
  • 投资性房地产的处置账务处理
  • 人力资源公司劳务派遣怎么收费
  • 物业公司收到开发代付物业管理费怎么做账
  • 收到联营单位预收的发票
  • 个人劳务费发票可以委托其他人去开吗
  • 怎么去税务局申报个税
  • 异地工程预缴个税
  • 报企业所得税的利润总额怎么填
  • 运输发票交印花税吗
  • 财务杠杆系数取值范围
  • 年中入职个税怎么预扣
  • 企业所得税季报人数怎么填
  • 新的成品油消费税纳税申报表有什么变化?
  • 个人独资企业免费刻章吗
  • 合同取得成本计入当期损益吗
  • 减免税款未抵扣增值税
  • 精英主板设置u盘启动
  • 原本可以打开的软件
  • fsdu.exe是什么程序?
  • 若依官网
  • 持有至到期投资减值准备
  • 评价指标mae
  • 应纳税所得额准予扣除的有
  • 营改增几个阶段
  • 比利牛斯山作为天然界限
  • php ajax 教程
  • php事件机制
  • 利用php生成静态数据
  • 专项应付款借方余额表示
  • extract php函数
  • 员工宿舍的物业费要交个税吗
  • 新办企业购置设备申请
  • 税负率包含哪些税种
  • 固定资产不折旧不摊销怎么做账
  • 企业的资产必须符合哪些条件
  • 公司注册地址变更有什么影响
  • 安装sql server 2008提示重新启动计算机
  • 个人销售商品交什么税
  • 一般纳税人劳务费税率是多少2023
  • 长期应付款为负数重分类
  • 完工产品制造成本表
  • 认缴的注册资金怎么做账
  • 现金日记账和银行日记账必须逐月结出余额
  • 员工出国境有关说法
  • 服装销售怎么做
  • sql多条件组合查询
  • 远程连接sqlserver的数据库和本地连接时不一样
  • 以管理员的身份运行是什么意思win10
  • iis安装文件xp版
  • linux0.12内核代码多少行
  • hpl是什么文件
  • debian怎么配置ip
  • win8 开机后无法进入系统
  • node.js cookie-parser之parser.js
  • 搭建gitbook
  • ie按钮不显示
  • jquery each return
  • linux常用脚本代码
  • unity3d题库
  • javax.net.ssl.SSLException: hostname in certificate didn't match:
  • 安卓环境搭建id怎么设置
  • 税控盘状态
  • 江西医保缴费怎么交
  • 财政临时工是什么
  • 河北省社保证明网上查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设