位置: 编程技术 - 正文

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

  • 增值税发票综合服务平台错误代码35
  • 活动策划费属于业务宣传费吗
  • 金蝶k3如何设置凭证保存自动新增
  • 收到投资款怎么做账
  • 未达起征点标志
  • 公司可以为非本人开户吗
  • 金税盘查发票明细
  • 缴纳个人所得税扣除项目
  • 关于年底双薪和分红问题的处理
  • 现金折扣销售退回的会计分录
  • 存货盘亏进项税额转出会计分录
  • 旅游公司发票企业能报销吗
  • 专票的有效期是什么意思
  • 检测费专用增值税的税票税率
  • 发票入账后还能冲红吗
  • 为什么预计负债是递延所得税资产
  • 哪些发票冲抵备用金
  • 原材料暂估入库怎么做账
  • 企业注销时往来账目挂账怎么处理
  • 华为nova9se参数详细参数
  • 什么是comsol
  • 苹果电脑连接打印机打印不出来
  • 完美解决win11间歇性掉线
  • 电脑自动进入睡眠模式黑屏
  • php for break
  • 营改增后不动产发票
  • 软件和集成电路杂志官网
  • 损益类科目月末结转到哪个科目
  • Joomla简单判断用户是否登录的方法
  • php处理xml数据
  • php数组实现原理
  • yolov5 output
  • 微信小程序实训内容
  • 谷歌研究院
  • 外贸企业上年的税收
  • 售后租回怎么理解
  • 装修费摊销费计算公式
  • 补缴税款账务处理
  • 其他发票包括哪些
  • phpcms验证码不显示
  • python从键盘输入正整数n,计算1+2+3
  • python中的元组
  • mongodb reference
  • 工会经费的会计分录2022
  • 收据4联
  • 小规模都是做季报吗
  • 增值税普票税额可以抵扣税吗
  • 先付款后开票怎样写证明
  • 多计提的折旧费怎么做账
  • 在建工程前期投标流程
  • 汽车销售公司赠车合法吗
  • 销售给回扣的话术
  • 去年的福利费没有用完,今年可以用吗
  • 电信增值服务费会计科目
  • 免征印花税的6个项目
  • 主营业务收入是含税还是不含税
  • 费用报销办法
  • 工业企业的生产费用包括哪些
  • 平行结转分步法例题
  • sqlserver 中文字符集
  • mysql 存过
  • win7如何共享文件夹给另一台电脑使用
  • office技术预览版和增强版
  • 在unix系统中采用的页面置换
  • 系统用户在哪里
  • win10周年更新版是什么意思
  • linux系统的配置
  • Win7系统打开D盘文件后怎么没有后退箭头
  • win7系统打印机服务开启
  • javascript中对象一般由什么组成
  • easyui点击弹出窗口
  • Android使用活动需要去什么进行注册
  • opengl 2
  • bat定义函数
  • python编程中的函数
  • angular keyup
  • java模拟银行存款功能
  • 全面解析少女时代关系
  • 税务监察室具体工作内容
  • 美国各州房产税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设