前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

arguments详解

首页
2016-12-13 14:55:24
Front-End
JavaScript

每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。

# Arguments对象介绍

Arguments对象是一个伪数组对象,它有length属性,可以arguments[i]来访问对象中的元素,但它不能用数组的一些方法,例如push,pop,slice等。

# Arguments的length属性

Arguments的length属性,表示function函数实际所传参数的个数。函数名点length可以获取函数期望的传参个数。

function argTest(a,b,c){
	var t = arguments.length; //实际传参个数
	var e = argTest.length;   //期望传参个数

	console.log(t);
	console.log(e);
}

argTest(11,12);       //t=2,e=3
argTest(11,12,13);    //t=3,e=3
argTest(11,12,13,14); //t=4,e=3
@前端进阶之旅: 代码已经复制到剪贴板

# Arguments的参数访问

Arguments对象的参数访问可以用arguments[i]来访问函数所传的参数。

function argTest(a,b,c){
	var arg = [];
	for(var i=0;i<arguments.length;i++){
		arg.push(arguments[i]);
	}
	console.log(arg);
}

argTest(11,12);       //[11, 12]
argTest(11,12,13);    //[11, 12, 13]
argTest(11,12,13,14); //[11, 12, 13, 14]
@前端进阶之旅: 代码已经复制到剪贴板

# Arguments的callee调用

Arguments的callee属性可以调用函数本身,当函数正在执行时才可调用,可以实现方法的递归调用。

function argTest(a,b,c){
	var e = fe
  • Arguments对象介绍
    • Arguments的length属性
    • Arguments的参数访问
    • Arguments的callee调用
    • Function对象caller属性
  • Arguments的作用
    • 方法重载
    • 递归调用
    • 不定参问题

← OOP之类与对象JS 中的 call、apply、bind 方法 →