位置: 编程技术 - 正文

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

  • 核定征收企业所得税暂行办法
  • 增量留底退税好处
  • 注册登记费用属于什么科目
  • 折让折扣负数发票的会计处理
  • 2019一般纳税人新政策
  • 甲方代扣水电费怎么做账
  • 企业所得税税率有几个档次
  • 新个税年终奖怎么申报
  • 预缴企业所得税会计处理
  • 建筑企业资质使用对建造师补充要求
  • 退免税指的是增值税还是消费税?
  • 待转销项税额如何列报
  • 招待用酒可以抵扣所得税吗
  • 职工因公出差伙食补助标准
  • 技术服务费属于什么税收分类编码
  • 清包工开票详细名称
  • 银行流动性比例要求
  • 报税营业成本包括管理费用吗
  • 低于成本价销售的税务风险
  • 可转债转换为股权投资的企业所得税处理
  • 资本化利息金额
  • 企业的税收筹划
  • 汇兑结算方式可以分为
  • 影响资金等值的三个因素
  • 长期贷款利息怎样计算
  • 美容店销售收入怎么算
  • PHP:pg_affected_rows()的用法_PostgreSQL函数
  • tensorflow安装教程pycharm
  • 固定资产的非正常报废
  • 安装elipse教程
  • 帝国最新版本
  • 申请开具电子发票
  • etc电子发票需要多久才能开
  • 异地提供建筑服务预缴
  • 反写必须15号之前吗
  • 个人提供劳务怎么去税务局开发票
  • 现金支付的现状
  • phpcms 生成首页
  • 海关缴款书上完税价格含增值税吗
  • 起征点税种
  • 什么叫做应税劳务
  • 企业所得税会计利润
  • sqlserver、mysql获取连接字符串步骤
  • 小型企业需要给员工买社保吗
  • 股东投资款可以拿出来吗
  • 事业单位无形资产包括
  • 公司帐户可以转法人私人账户吗
  • 化验委托书
  • 开票方未缴税,为何要追回付款方的退税款
  • 不能抵扣的普通发票如何做分录
  • 确认应付职工薪酬如何计算
  • 跨年暂估收入,次年开票会计分录
  • 税控盘全额抵减如何填写申报表
  • 其他应收款的二级科目
  • 年底本年利润如何处理
  • 行政事业单位固定资产计提折旧
  • 公司拿房子抵债需要缴纳什么税费
  • 计提税金如何进项抵扣
  • 股权转让如何支付利润
  • 提前支付利息如何计算
  • 酒店会计科目表
  • 没有期初数据,只要借贷平横,报表是不是就不会不平了?
  • SQL Server ltrim(rtrim()) 去不掉空格的原因分析
  • windows10x预览版
  • 如何查看winxp系统的运行内存
  • ubuntu环境搭建
  • xp电脑注册表怎么打开
  • windows7开始菜单
  • js实现倒计时60s
  • cocos js
  • opengl深度值与z值
  • nginx优雅退出
  • node.js创建服务
  • 用户体验ui
  • python图片处理酷炫效果
  • 一个android项目一般包含哪些目录?各有什么用途?
  • js保存设置
  • 税务局人员调动
  • 江苏税务个税查询
  • 豪车消费税的征税范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设