位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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总结笔记)

  • 公司全额承担个税怎么申报
  • 收到出口退税款如何入账
  • 小规模纳税人要交增值税吗
  • 百旺税控盘反写不了怎么回事
  • 当月增值税为负数
  • 金税盘开完票后怎么报税一下
  • 固定资产改变用途进项转出
  • 年底计提费用和实际费用
  • 其他应收款包括的内容
  • 增值税申报税额填错了怎么进行填
  • 为什么利润表的财务费用与利息费用逻辑不对
  • 企业卖了个人如何交税
  • 车辆购置税能抵扣税款吗
  • 研发设备一次性计入研发费用账务处理
  • 电脑网页游戏打不开了怎么办
  • 系统升级为win11
  • 如何结束excel
  • 贷款贴息是什么政策
  • 赠送的商品怎么入库 企业会计准则
  • 入库单的金额填不填价税合计
  • 未开票收入缴纳所得税吗
  • 出售固定资产增值税怎么处理
  • 计提增值税可以无付凭证吗
  • php编写用户注册界面
  • 坏账准备属于哪一类账户
  • 增值税达不到起征点账务处理
  • 社保工伤退费会计分录
  • 未开票收入申报对企业有什么影响
  • VUE-CLI/VUE-ROUTER
  • 升级到miui14感觉耗电快了
  • 无效发票进项税额抵扣
  • mongodb集群开启auth认证
  • 扣缴义务人如何登录电子税务局
  • sql server 2008数据库没有备份文件恢复
  • 业务招待费进项票可以抵扣吗
  • 企业计提五险一金会计分录怎么写
  • 企业记账的相关规定
  • 资产负债表与利润表的关联性可在存货与销售成本
  • 资质办理属于什么开票大类
  • 消费税会计分录处理
  • 价内税与价外税的计算公式
  • 收到红票账务处理
  • 进项留底是什么科目
  • 决算清理期和库款报解整理期
  • 投资利税率计算方法
  • 资本公积的意思是
  • 去年已入账的材料怎么查
  • 库存商品的出售
  • 工地加油
  • 固定资产折旧方法不考虑净残值
  • 施工单位上报
  • 企业如何降低存款利息
  • 外贸企业出口退税账务处理
  • ms17010补丁怎么安装
  • Win10一键永久激活数字工具
  • Linux配置防火墙端口
  • win8无法使用内置管理员账户打开ie
  • WIN10安装介质不识别硬盘
  • win7系统备份需要多大空间
  • WIN10系统中断
  • Android开发简单购物界面
  • opengl控件库
  • javascript程序代码
  • 详解16型人格
  • nodejs mocha
  • nodejs mongoose
  • shell脚本详解
  • dos批处理实例800例
  • shell备份文件脚本
  • javascript高级语言
  • jquery 修改
  • python读入txt
  • SQLite之SQLiteStatement
  • python获取数据代码
  • 安卓端测试
  • js设计模式有什么用
  • 赣州市民中心上班时间电话号码
  • 税控盘换新会影响旧盘数据吗
  • 国有固定资产出租出借安全管理办法
  • 文化事业建设费减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号