位置: 编程技术 - 正文

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

  • 企业收取的租金应当计入
  • 一般纳税人开具的普票可以抵扣吗
  • 出口免税收入会退税吗
  • 土地增值税计入税金及附加吗
  • 年金终值系数公式例题
  • 广告公司开票能开劳务费吗
  • 土地增值税计入固定资产清理
  • 员工充值饭卡的收入如何做账
  • 全面解析是什么意思
  • 核算会计科目职工薪酬的范围
  • 上期留抵税额如何计算
  • 建筑业农民工工资
  • 开票与实际收款不一致有什么风险
  • 小企业核算其它货币资金包括哪些?
  • 企业所得税季报营业收入,营业成本怎么填
  • 需不需要交企业所得税看报表的哪个地方?
  • 企业报社保可以用医保吗
  • 股权0元转让
  • 房产税征收范围包括商铺吗
  • 如何调用金三接口?
  • 公益性捐赠所得税处理
  • 专利代理费如何报销
  • 苹果电脑删除win系统文件
  • linux如何使用
  • win10移动热点开关自动弹回
  • 无形资产的摊销方法
  • linux怎么用gcc编译c程序
  • php自定义函数的关键字是什么
  • 红字发票怎么填申报表表二
  • 打造出ChatGPT的,是怎样一群人?
  • 首个ChatGPT开发的应用上线;ChatMind思维导图工具;中文提示词大全;Copilot平替 | ShowMeAI日报
  • php 迭代器
  • sql server功能介绍
  • 税控盘有什么用途和作用
  • 2021发票认证
  • 年金终值系数表值系数
  • 房地产个税是什么意思
  • 固定资产入账原值含税价吗
  • 新《准则》适用对象为
  • 私车公用费用报销
  • 付承包费计入什么科目
  • 转出未交增值税借方余额表示什么
  • 房地产按揭贷款放款条件
  • 转账手续费没有发票能税前扣除吗
  • 抵债资产处置账务实例
  • 质量问题举例
  • 旅行社代订的机票可以抵扣吗
  • 政府补助的内容
  • 残保金新公司第一年免费吗
  • 月报报表格式
  • 会计如何建账做账
  • 开票软件备份在哪里
  • freebsd ports安装
  • linux的ip查看
  • xp系统在新建账户怎么弄
  • linux crontab用法
  • 微软发布更新的时间每月
  • opengl cullface
  • blockqueue生产者消费者
  • unity3ds
  • js链式编程的原理
  • 如何检查自己是否抑郁
  • 并行执行的符号
  • 管道的实现
  • 用bat实现定时执行任务的批处理文件
  • jquery 单页应用
  • 音频焦点图广告
  • jquery移动div到另一个div中
  • js onkeypress与onkeydown 事件区别详细说明
  • javascript 拖拽
  • python用什么编辑
  • Android之fill_parent和wrap_content
  • Android网络通讯哪个最简单
  • 北京天然气收费标准2024年
  • 江苏税务个人所得税app怎么下载不了?
  • 税务清单模板
  • 国企人事处长是什么级别?
  • 国家税务总局纳雍县税务局
  • 广州天河东路税务局地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设