位置: 编程技术 - 正文

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

  • 个人社保信息变更
  • 客户维护费计入什么科目
  • 从事小额零星经营业务的个人是指
  • 个税抵扣租房能抵扣多少
  • 进项税发票留抵
  • 增值税专用发票抵扣期限
  • 供应商质量问题告知函
  • 营改增退税政策
  • 建安企业工资占比标准
  • 股东分红如何合理节税
  • 物业管理企业主营业务收入
  • 企业扣税账户没钱交税会怎么样?
  • 2018年建筑增值税税率表
  • 企业所得税补充申报怎么报
  • 个税缴纳累计是每年一算吗
  • 外购无形资产的成本包括进口关税吗
  • 免税销售额计入主营业务收入吗
  • 一年内到期的应收质保金
  • 土地增值税含房产吗
  • 有进项没有销项会计处理
  • 支付拆迁补偿款做账
  • 苹果电脑怎么截屏ctrl加什么
  • php打开文件读取内容
  • vue父组件调用子组件的方法报错
  • 预收账款通俗易懂的说法
  • php验证码识别
  • 残保金的会计处理
  • 圣米厄尔教堂
  • php中session什么意思
  • 基于骨骼关键点的动作识别
  • 抄税的步骤
  • vue.3
  • jsp使用教程
  • 【深度学习】详解 MAE
  • 帝国cms使用手册
  • js继承方式及其优缺点
  • 长期待摊费用账务
  • 车辆保险会计怎么做分录
  • 土地增值税清算的条件
  • 社会团体费用报销制度
  • 软件企业该怎么发展起来
  • 国外货物进入保税仓需要办理什么
  • 哪些人需要进行个人所得税年度汇算
  • 货物或应税劳务名称怎么填
  • 注册资本认缴与实缴有什么区别
  • 员工退回备用金怎么写收据
  • 坏账准备贷方余额期末如何处理
  • 费用分摊科目
  • 工会会计有工资么
  • 企业的期间费用包括制造费用吗
  • 免征增值税进项税怎么弄
  • 签合同付款
  • 金税盘系统可以添加2个账号?
  • 劳务费差额征税的账务处理
  • 红十字会是事业编还是行政编
  • record关键字
  • sql server数据库文件的扩展名是
  • SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)
  • win10怎么设置开机自启软件
  • xp 修复
  • U盘硬装WIN7 64位旗舰系统,是怎样练成的(妹子装机衔接篇)
  • win7旗舰系统
  • 联想y400装win8
  • 如何隐藏windows激活水印
  • win10声音突然变得很沉闷
  • window10虚拟系统
  • Win7计算机管理里面没有本地用户和组
  • win7系统删除密码
  • cocos2d怎么用
  • css网页布局中注释是什么
  • jquery.min.js源代码
  • jquery easyui插件
  • js最简单的代码
  • 对应用进行单元测试的是
  • android listView二级目录选中效果
  • python struct库
  • python的params
  • 佛山市国家税务局狮山分局简介
  • 担保机构和银行的区别
  • 工程合同可以违背国家规范吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设