位置: 编程技术 - 正文

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

  • 怎样理解一般纳税人
  • 抗税的性质
  • 融资租赁的两种模式
  • 滴滴电子普通发票怎么抵扣
  • 金融资产的构成
  • 企业给员工的福利取消了可以劳动仲裁么
  • 平台收取的佣金开具什么发票
  • 黄金销售免税
  • 政府奖励收入要交企业所得税么
  • 企业的主要经营哲学理念
  • 个体工商户2023年税收政策
  • 合同没签定金可以退的吗
  • 发票打印机分专票和普票的吗?
  • 税后工资反推税前工资计算方法
  • 广告制作税收编码怎么填
  • 三证合一后怎么看税号
  • 会务费税目
  • 公司给个人买的意外险个人有权利查吗
  • 卖菜公司有税务优惠吗
  • 出口退税率怎么算公式是什么
  • 贴现凭证的贴现银行是谁
  • 报销话费属于什么费用
  • 购销合同印花税税率
  • 运输发票车种车号要求 自有车
  • 中介收中介费后就不管了
  • 卸载了驱动程序会怎么样
  • 暂估入库怎么处理
  • 笔记本电脑bios设置
  • 关闭win10系统更新有什么后果
  • directx安全吗
  • php数组函数题目
  • 加工费入什么会计科目
  • vue3全局属性
  • php 代码生成
  • 应交税金 应交税费
  • 红宝石地址
  • 珊瑚礁区域常有的鱼类
  • php简单的接口编写示例
  • 勾选确认发票后能撤销吗
  • php xml转字符串
  • 计提的福利费怎么处理
  • gpt参数
  • 蓝桥杯2021出结果
  • windowsserver2016激活密钥
  • 哪些税是季报
  • 帝国cms灵动标签调用标题图片
  • 财务状况简单说明
  • 信息技术服务有限公司是干什么的
  • 甲供材入账
  • 公户网银丢了
  • 保险公司的奖励制度
  • 私车公用怎么办理手续
  • 差旅费不抵扣
  • 法人买社保又不发工资怎么做账
  • 工资能否当月计提当月发放
  • 公司厨房用具
  • 招待客户住宿属于什么费用
  • 公司购轿车会计分录怎么做
  • 无形资产的项目有哪些
  • 预提费用在新会计准则下该如何列支?
  • 会计做内账的技巧与方法
  • 个人到税务局开普票要交多少税
  • 会计账簿的更换和保管有哪些要求
  • mysql中一个普通ERROR 1135 (HY000)错误引发的血案
  • sqlserver数据库恢复挂起状态
  • sql中出现将截断字符串或二进制
  • centos7修改mtu
  • freebsd常用命令
  • win7更新和安全在哪里
  • linux一块网卡绑定多个ip
  • win8新建用户
  • 微软股票
  • 安卓解析工具
  • shell脚本 su
  • javascript基础笔记
  • 使用jQuery操作HTML的table表格的实例解析
  • 猫的游戏视频
  • 怎么利用python处理批量表格
  • 怎么理解python
  • 江苏税务新办企业套餐
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设