位置: 编程技术 - 正文

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

  • 怎么下载税控盘开票软件
  • 租厂房土地使用税
  • 增值税专用发票丢失了要怎么处理
  • 工资怎么扣费
  • 个体工商户免费刻章
  • 电子发票打小了可以报销吗
  • 发票验证码和校验码是一样的吗
  • 以前年度损益调整借贷方向
  • 公司开承兑需要多长时间
  • 年末发票
  • 电子设备税费
  • 报销购物卡发票公司如何交税?
  • 应有财务软件
  • 法人代表领工资怎么领
  • 企业员工报销法律规定
  • 税务机关是否可以申请破产清算
  • 医疗器械销售税负率是多少
  • 发票查询结果显示不出来
  • 免税个体户发票税率多少
  • 影视制作公司是做什么的
  • 企业所得税退税会计分录
  • 税务登记都需要什么
  • 动漫软件公司的发展前景
  • 个税申报月份有误如何调整?
  • 香港公司可以给个人打款吗
  • 拨号的用户名
  • 苹果se和华为p9哪个好
  • 其他债权投资发生减值会影响所有者权益总额吗
  • php处理ajax
  • 电脑文件删除怎么恢复找回
  • 代理买卖证券款是经纪业务费用吗
  • 哪些情况需要做进项税转出
  • window7无法正常启动怎么办
  • 黄石国家公园的英语怎么读
  • phpsetcookie
  • vue 登录模板
  • linux 运行php
  • 模式识别与图像处理能做什么
  • react usereducer
  • 预算会计的核算对象是什么
  • 农民工专用账户回执单
  • 公司的财务报表能看出什么
  • php clone函数
  • dedecms配置
  • 结转成本计入
  • 现金销售收入是什么意思
  • 企业所得税的扣除是什么意思
  • 企业所得税应按季预缴,年末汇算清缴
  • 逾期交房违约金 已支付金额
  • 社会团体费用支出有什么要求
  • 非居民企业所得税
  • 费用误计入固定资产
  • 水利基金减免
  • 营业收入包括主营业务收入
  • 加班就餐费如何入账
  • mysql的表文件在哪
  • fedora系统怎么设置停电关机
  • win7一键升级到win10
  • 微软十周年
  • linux打成zip包
  • linux安全性从何而来
  • 日历显示不全
  • linux怎么清除内存
  • windows7打不了字怎么办
  • python列表详解
  • 安卓飞行手游
  • 谷歌编程之夏2021
  • python中类怎么用
  • cmd新建
  • windows下安装python环境
  • javascript教程chm
  • js tojsonstring
  • android 系统app开机自启动设置
  • android系统主要特点
  • flask框架官方文档
  • 油票增值税专用发票几个点开
  • 淘宝要补偿怎么回复
  • 三代手续费退还银行网点变更怎么办
  • 大乐透中奖查询走势图
  • 税款复核需要多少天
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设