1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
---
title: Function.arguments
slug: Web/JavaScript/Reference/Global_Objects/Function/arguments
translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments
---
<div>{{JSRef}} {{deprecated_header}}</div>
<div>A propriedade <strong><code><em>function.arguments</em></code></strong> refere-se a um objecto com aspecto de <em>array</em> que corresponde aos argumentos da função. Ao invés disso, use a variável {{jsxref("Functions/arguments", "arguments")}}. Esta propriedade é proibida no modo <em>strict</em> devido ao <em><a href="http://www.ecma-international.org/ecma-262/6.0/#sec-addrestrictedfunctionproperties">tail call optimization</a></em>.</div>
<h2 id="Descrição">Descrição</h2>
<p>A síntaxe <code>function.arguments</code> está obsoleta. A forma recomendade de aceder ao objecto {{jsxref("Functions/arguments", "arguments")}} disponível nas função é usar simplesment a variável {{jsxref("Functions/arguments", "arguments")}}.</p>
<p>No caso de recursão isto é, se uma funão <code>f</code> aparece várias vezes na <em>stack, </em>o valor de <code>f.arguments</code> representa os argumentos correspondentes à mais recente chamada da função.</p>
<p>O valor da propriedade <code>arguments</code> é tipicamente <em>null</em> se não há nenuma invocação da função a acontecer, ou seja, a função foi chamada mas ainda não retornou.</p>
<h2 id="Exemplos">Exemplos</h2>
<pre class="brush: js">function f(n) { g(n - 1); }
function g(n) {
console.log('antes: ' + g.arguments[0]);
if (n > 0) { f(n); }
console.log('depois: ' + g.arguments[0]);
}
f(2);
console.log('retornado: ' + g.arguments);
// Output
// antes: 1
// antes: 0
// depois: 0
// depois: 1
// retornado: null
</pre>
<h2 id="Especificações">Especificações</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>
<p>Definição inicial. Implementado em JavaScript 1.0. Tornado obsoleto a favor de {{jsxref("Functions/arguments", "arguments")}} em ES3.</p>
</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-10.6', 'arguments object')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td>Objecto {{jsxref("Functions/arguments", "arguments")}}</td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-arguments-object', 'arguments object')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Objecto {{jsxref("Functions/arguments", "arguments")}}</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-arguments-object', 'arguments object')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td>Objecto {{jsxref("Functions/arguments", "arguments")}}</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilidade_navegadores">Compatibilidade navegadores</h2>
<div>
<p>{{Compat("javascript.builtins.Function.arguments")}}</p>
</div>
<h2 id="Ver_também">Ver também</h2>
<ul>
<li>Objecto {{jsxref("Functions/arguments", "arguments")}}</li>
<li>{{jsxref("Functions", "Functions and function scope", "", 1)}}</li>
</ul>
|