位置: 编程技术 - 正文

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

  • 申请渠道门户网站是什么意思
  • 增值税的计税金额
  • 偶然所得税起征点800是每月吗
  • 契税减免税特殊规定有哪些?
  • 制造费用科目一定无余额
  • 会计账簿错弊有哪些
  • 出口消费税税率
  • 法人能把公司账户的钱都转走么
  • 企业所得税抵扣项
  • 资产总额季度平均
  • 累计折旧和固定资产减值准备的区别
  • 单位和职工个人缴费基数如何确定的规定
  • 收到捐赠货物的会计分录怎么写
  • 收到发票当月不抵扣怎么做账
  • 4s店买车首付能付一成吗
  • 应收票据会计分录怎么做
  • 关联方费用分摊是否要调账
  • 如何填写增值税及附加税费申报表
  • 最新房产税费
  • 缴纳滞纳金计入什么科目
  • 为什么公司信用代码不对
  • 固定资产2020
  • 加计扣除10%进项税账务处理 如何填表
  • 工商年报报表
  • 会计计提和冲回
  • 带息票据贴现金额怎么算
  • 独立账户负债核算内容
  • 全免增值税企业有哪些
  • 行政划拨无偿取得的土地使用权属于什么资产
  • 通用pe工具箱安装教程
  • 安置房项目需要环评吗
  • u启动pe装机工具如何重装系统win10
  • 预收房租需要缴纳个税么
  • vite首次打开界面加载慢问题/解决
  • 谷歌网页小恐龙
  • 收取包装物押金税率
  • php代码规范七大原则
  • 已领待用物资
  • php flock函数
  • 建筑公司内账复杂吗
  • 企业要缴哪些税种
  • pip清华源安装
  • 残保金怎么核算
  • Java+JSP+Mysql+Tomcat实现Web图书管理系统
  • pytorch m1
  • 房租的计算方式
  • sosreport命令收集详细信息
  • 公司账户转私账违法吗
  • 经营性现金流减利息
  • 股本及溢价
  • 小规模纳税人销售商品会计分录
  • 总账和明细账期间相同吗
  • mysql 锁详解
  • 劳务费怎么要的回来
  • 制单会计岗位风险点
  • 政府会计制度收回多发工资
  • 银行电子承兑到期后怎么操作
  • 付国外客户佣金怎么代扣代缴增值税
  • 事业单位基建账套会计科目
  • 公司章程进行变更的条件
  • 展示费是业务宣传费吗
  • 会计分录借贷怎么分视频教程
  • sql server的介绍
  • sqlserver字符串切割
  • 电脑windowsxp无法启动怎么办
  • shell多进程并行返回值
  • centos6.5配置网络
  • ubuntu20.4分区
  • linux动态链接库怎么调用
  • exe什么意思?
  • mac输入特殊字符
  • windows中复制文件的几种方法
  • unity3d跑酷游戏推荐
  • jquerycuishifeng
  • jquery validation plugin
  • 查看进程使用的端口
  • 定期定额纳税申报表应税项应填哪个数
  • 北京鼓楼医院网上挂号app
  • 怎样在网上申报税务流程
  • 两会热点有哪些呀?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设