Javascript函数调用隐式对象arguments

Js在函数调用时会创建一个隐式的的对象arguments。

arguments包含了函数调用时实际传递给函数的参数数组对象。

App = {};
App.fun0 = function(){
    console.log(arguments)
};

App.fun1 = function(arg1){
    console.log(arguments)
};

App.fun2 = function(arg1, arg2){
    console.log(arguments)
};

App.call1 = function(){
    this.fun0();
    this.fun1(1);
    this.fun2(1,2);
};

App.call2 = function(){
    this.fun1();
    this.fun1(1);
    this.fun1(1,2);
};

App.call1();
App.call2();

输出结果如下:

{}

{ ‘0‘: 1 }

{ ‘0‘: 1, ‘1‘: 2 }

{}

{ ‘0‘: 1 }

{ ‘0‘: 1, ‘1‘: 2 }

可以看到,arguments不管函数声明时的参数个数,而是调用实际传递给函数的参数。

arguments[index]获得参数值;

arguments.length获得实际传递的参数个数;

arguments还有一个callee属性,表示对函数本身的引用,可以用来实现递归调用。

如,计算阶乘:

var sum = function(n){
    if(1==n) {
        return 1;
   } else {
        return n + arguments.callee(n-1);
    }
}
console.log(sum(10));

时间: 2024-10-19 03:58:21

Javascript函数调用隐式对象arguments的相关文章

JavaScript的隐式转换

原文:JavaScript的隐式转换 JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可以用typeof方法打印来某个是属于哪个类型的.不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换.隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等.. typeof '11' //string typeof(11) //number '1

JSP页面以及JSP九大隐式对象

?JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. ?JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. ?Jsp快速入门:在jsp页面中输出当前时间. ?JSP模版元素 ?JSP表达式 ?JSP脚本片断 ?JSP注释 ?JSP指令 ?JSP标签 ?JSP内置对象 ?如何查找JSP页面中的错误

四大域对象,和jsp的九大隐式对象,已经el表达式的11个隐式对象

四大域对象 1.PageContext :页面范围的数据 2.ServletRequest:请求范围的数据 3.HttpSession:回话范围的数据 4.ServletContext:应用范围的数据 JSP的九大隐式对象 1.out 输出流对象 2.request请求对象 3.response 响应对象 4.config 配置对象 5.session 回话对象 6.application 应用程序对象 7.page 页面对象 8.pageContext 页面上下文对象 9.exception

JSP九大隐式对象

1.jsp的九大隐式对象 request HttpServletRequest response HttpServletResponse session HttpSession application ServletcContext config   ServletConfig exception (特殊情况下使用) page     this(本JSP页面) out       JspWriter(带缓冲的PrintWriter) pageContext (使普通Java类可访问WEB资源,自

EL访问隐式对象

1.EL表达式支持的隐式对象 applicationScope 应用程序范围内的scoped变量组成的集合 sessionScope 所有会话范围的对象的集合 requestScope 所有请求范围的对象的集合 pageScope 页面范围内所有的对象的集合 cookie 所有cookie组成的集合 header HTTP请求头部,字符串 headerValue HTTP请求头部,字符串集合 initParam 全部应用程序参数名组成的集合 pageContext 当前页面的javax.serv

JSP中的EL隐式对象

一 介绍 JSP表达式语言(Expression Language),简称EL,为存取变量.表达式运算和读取内置对象等内容提供了新的操作方式.目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法. ${ param. username } 等价于 <%=request. getParameter("username") %> ${ requestScope.userlist } 等

黑马day06 jsp错误页面&amp;九大隐式对象

一.如果一个页面指定了errorPage="指定错误页面" ,当这个页面出错的时候就会跳转到指定的页面进行友好的提示给用户. 1. 本6.jsp只有一行代码1/0这行代码会抛出异常,因此会跳转到指定的error页面. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="/error.jsp"%>

jsp隐式对象

servlet容器会传递给几个对象给它运行的servlet.像什么HttpServeltRequest,ServletConfig等对象. 在jsp中,可以通过使用隐式对象来访问上述对象. 对象 描述 request HttpServletRequest类的实例 response HttpServletResponse类的实例 out JspWriter类的实例,用于把结果输出至网页上 session HttpSession类的实例 application ServletContext类的实例,

【Head First Servlets and JSP】笔记16:JSP隐式对象(内置对象)

接笔记15. 1.不管是JSP中的<%%>还是<%\=%>最终都将处于servlet的方法体中,那么有没有一种元素可以声明成类的成员呢? ——答案是有,而且非常非常简单,这个元素就是<%!%>,我们用它来解决笔记15中的问题,只需要在原基础上加一个感叹号就可以了. <%@ page import="Sample.Counter" %> <%@ page contentType="text/html;charset=UTF-