<!DOCTYPE HTML>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>arguments对象 | JavaScript高级讲义</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="">
<meta name="generator" content="GitBook 2.6.7">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="../gitbook/style.css">
<link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-highlight/website.css">
<link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-search/search.css">
<link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-fontsettings/website.css">
<link rel="prev" href="../Sources/静态成员和实例成员.html" />
</head>
<body>
<div class="book"
data-level="1.10.4"
data-chapter-title="arguments对象"
data-filepath="Sources/arguments对象.md"
data-basepath=".."
data-revision="Tue Oct 18 2016 23:20:06 GMT+0800 (CST)"
data-innerlanguage="">
<div class="book-summary">
<nav role="navigation">
<ul class="summary">
<li class="chapter " data-level="0" data-path="index.html">
<a href="../index.html">
<i class="fa fa-check"></i>
Introduction
</a>
</li>
<li class="chapter " data-level="1" >
<span><b>1.</b> 面向对象</span>
<ul class="articles">
<li class="chapter " data-level="1.1" data-path="Sources/面向对象概念介绍.html">
<a href="../Sources/面向对象概念介绍.html">
<i class="fa fa-check"></i>
<b>1.1.</b>
面向对象概念介绍
</a>
</li>
<li class="chapter " data-level="1.2" data-path="Sources/面向对象编程举例.html">
<a href="../Sources/面向对象编程举例.html">
<i class="fa fa-check"></i>
<b>1.2.</b>
面向对象编程举例
</a>
</li>
<li class="chapter " data-level="1.3" data-path="Sources/构造函数.html">
<a href="../Sources/构造函数.html">
<i class="fa fa-check"></i>
<b>1.3.</b>
构造函数
</a>
</li>
<li class="chapter " data-level="1.4" data-path="Sources/面向对象的三大特性.html">
<a href="../Sources/面向对象的三大特性.html">
<i class="fa fa-check"></i>
<b>1.4.</b>
面向对象的三大特性
</a>
</li>
<li class="chapter " data-level="1.5" >
<span><b>1.5.</b> 原型</span>
<ul class="articles">
<li class="chapter " data-level="1.5.1" data-path="Sources/传统构造函数存在的问题.html">
<a href="../Sources/传统构造函数存在的问题.html">
<i class="fa fa-check"></i>
<b>1.5.1.</b>
传统构造函数存在的问题
</a>
</li>
<li class="chapter " data-level="1.5.2" data-path="Sources/使用原型解决构造函数问题.html">
<a href="../Sources/使用原型解决构造函数问题.html">
<i class="fa fa-check"></i>
<b>1.5.2.</b>
使用原型解决构造函数问题
</a>
</li>
<li class="chapter " data-level="1.5.3" data-path="Sources/原型相关概念.html">
<a href="../Sources/原型相关概念.html">
<i class="fa fa-check"></i>
<b>1.5.3.</b>
原型相关概念
</a>
</li>
<li class="chapter " data-level="1.5.4" data-path="Sources/原型的使用.html">
<a href="../Sources/原型的使用.html">
<i class="fa fa-check"></i>
<b>1.5.4.</b>
原型的使用
</a>
</li>
<li class="chapter " data-level="1.5.5" data-path="Sources/proto.html">
<a href="../Sources/proto.html">
<i class="fa fa-check"></i>
<b>1.5.5.</b>
\_\_proto\_\_
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.6" data-path="Sources/继承的实现方式.html">
<a href="../Sources/继承的实现方式.html">
<i class="fa fa-check"></i>
<b>1.6.</b>
继承的实现方式
</a>
</li>
<li class="chapter " data-level="1.7" data-path="Sources/原型三角绘制.html">
<a href="../Sources/原型三角绘制.html">
<i class="fa fa-check"></i>
<b>1.7.</b>
原型三角绘制
</a>
</li>
<li class="chapter " data-level="1.8" data-path="Sources/属性搜索原则.html">
<a href="../Sources/属性搜索原则.html">
<i class="fa fa-check"></i>
<b>1.8.</b>
属性搜索原则
</a>
</li>
<li class="chapter " data-level="1.9" >
<span><b>1.9.</b> 原型链</span>
<ul class="articles">
<li class="chapter " data-level="1.9.1" data-path="Sources/原型链结构.html">
<a href="../Sources/原型链结构.html">
<i class="fa fa-check"></i>
<b>1.9.1.</b>
原型链结构
</a>
</li>
<li class="chapter " data-level="1.9.2" data-path="Sources/原型式继承.html">
<a href="../Sources/原型式继承.html">
<i class="fa fa-check"></i>
<b>1.9.2.</b>
原型式继承
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.10" >
<span><b>1.10.</b> 对象相关的其他知识</span>
<ul class="articles">
<li class="chapter " data-level="1.10.1" data-path="Sources/objectprototype成员介绍.html">
<a href="../Sources/objectprototype成员介绍.html">
<i class="fa fa-check"></i>
<b>1.10.1.</b>
Object.prototype成员介绍
</a>
</li>
<li class="chapter " data-level="1.10.2" data-path="Sources/function.html">
<a href="../Sources/function.html">
<i class="fa fa-check"></i>
<b>1.10.2.</b>
Function
</a>
<ul class="articles">
<li class="chapter " data-level="1.10.2.1" data-path="Sources/function的使用.html">
<a href="../Sources/function的使用.html">
<i class="fa fa-check"></i>
<b>1.10.2.1.</b>
Function的使用
</a>
</li>
<li class="chapter " data-level="1.10.2.2" data-path="Sources/参数代码太长的问题.html">
<a href="../Sources/参数代码太长的问题.html">
<i class="fa fa-check"></i>
<b>1.10.2.2.</b>
参数代码太长的问题
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.10.3" data-path="Sources/静态成员和实例成员.html">
<a href="../Sources/静态成员和实例成员.html">
<i class="fa fa-check"></i>
<b>1.10.3.</b>
静态成员和实例成员
</a>
</li>
<li class="chapter active" data-level="1.10.4" data-path="Sources/arguments对象.html">
<a href="../Sources/arguments对象.html">
<i class="fa fa-check"></i>
<b>1.10.4.</b>
arguments对象
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
Published with GitBook
</a>
</li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<!-- Actions Left -->
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >JavaScript高级讲义</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal" id="section-">
<h2 id="arguments对象">arguments对象</h2>
<p>在每一个函数调用的过程中, 函数代码体内有一个默认的对象<code>arguments</code>, 它存储着实际传入的所有参数。</p>
<p><code>arguments</code>是一个伪数组对象. 它表示在函数调用的过程中传入的所有参数的集合。在函数调用过程中不规定参数的个数与类型, 可以使得函数调用变得非常灵活性。</p>
<p>JavaScript中的函数并没有规定必须如何传参:</p>
<ol>
<li>定义函数的时候不写参数, 一样可以调用时传递参数</li>
<li>定义的时候写了参数, 调用的时候可以不传参</li>
<li>定义的时候写了一个参数, 调用的时候可以随意的传递多个而参数</li>
</ol>
<p>在代码设计中, 如果需要函数带有任意个参数的时候, 一般就不带任何参数, 所有的参数利用<code>arguments</code>对象来获取. 一般的函数定义语法, 可以写成:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">foo</span> (<span class="hljs-params"> <span class="hljs-comment">/* ... */</span> </span>) </span>{
}
</code></pre>
<h3 id="练习">练习:</h3>
<blockquote>
<p>利用 Function 创建一个函数, 要求允许函数调用时传入任意个数参数, 并且函数返回这些数字中最大的数字.</p>
</blockquote>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">foo</span> (<span class="hljs-params"> </span>) </span>{
<span class="hljs-comment">// 所有的参数都在 arguments 中. 将其当做数组使用</span>
<span class="hljs-comment">// 问题已转换成在有一个数组中求最大值</span>
<span class="hljs-keyword">var</span> args = <span class="hljs-built_in">arguments</span>;
<span class="hljs-keyword">var</span> max = args[ <span class="hljs-number">0</span> ];
<span class="hljs-keyword">for</span> ( <span class="hljs-keyword">var</span> i = <span class="hljs-number">1</span>; i < args.length; i++ ) {
<span class="hljs-keyword">if</span> ( max < args[ i ] ) {
max = args[ i ];
}
}
<span class="hljs-keyword">return</span> max;
}
</code></pre>
<h3 id="练习">练习:</h3>
<blockquote>
<p>利用 Function 写一个函数, 要求传入任意个数字 求和</p>
</blockquote>
</section>
</div>
</div>
</div>
<a href="../Sources/静态成员和实例成员.html" class="navigation navigation-prev navigation-unique" aria-label="Previous page: 静态成员和实例成员"><i class="fa fa-angle-left"></i></a>
</div>
</div>
<script src="../gitbook/app.js"></script>
<script src="../gitbook/plugins/gitbook-plugin-search/lunr.min.js"></script>
<script src="../gitbook/plugins/gitbook-plugin-search/search.js"></script>
<script src="../gitbook/plugins/gitbook-plugin-sharing/buttons.js"></script>
<script src="../gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>
<script>
require(["gitbook"], function(gitbook) {
var config = {"highlight":{},"search":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2}};
gitbook.start(config);
});
</script>
</body>
</html>
arguments对象
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- arguments 对象函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。ar...
- 概念学习 什么是arguments?在函数代码中,使用特殊对象 arguments,无需明确指出参数名,就能访问它...
- function 下function 就是函数,函数就是一段代码,这个没啥好说的,我们把函数起个名字,然后放起来,...