blob: 6e83cb3b2cbe0e4d783e4f92ec202540de49892b (
plain)
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
|
---
title: Function.length
slug: Web/JavaScript/Reference/Global_Objects/Function/length
translation_of: Web/JavaScript/Reference/Global_Objects/Function/length
---
<div>{{JSRef}}</div>
<p><code><strong>length</strong></code> property表示該 function 預期被傳入的參數數量</p>
<div>{{js_property_attributes(0,0,1)}}</div>
<h2 id="描述">描述</h2>
<p><code>length</code> 是 function 物件的一個 property,表示該 function 預期被傳入的參數數量,這個數量並不包含 {{jsxref("rest_parameters", "rest parameter", "", 1)}} 且只包涵第一個預設參數(Default Parameters)前的參數。相較之下 {{jsxref("Functions_and_function_scope/arguments/length", "arguments.length")}} 是 function 內部的物件,會提供真正傳進 function 中的參數數量。</p>
<h3 id="Function_建構子的_data_property"><code>Function</code> 建構子的 data property</h3>
<p>{{jsxref("Function")}} 建構子本身就是一個 {{jsxref("Function")}} 物件。其 <code>length</code> data property 的值為 1。此 property 的 attributes 包含: Writable: <code>false</code>, Enumerable: <code>false</code>, Configurable: <code>true</code>.</p>
<h3 id="Function_prototype_物件的_property"><code>Function</code> prototype 物件的 property</h3>
<p>{{jsxref("Function")}} prototype 物件的 length property 其值為 0。</p>
<h2 id="範例">範例</h2>
<pre class="brush: js">console.log(Function.length); /* 1 */
console.log((function() {}).length); /* 0 */
console.log((function(a) {}).length); /* 1 */
console.log((function(a, b) {}).length); /* 2 以此類推. */
console.log((function(...args) {}).length); /* 0, rest parameter 不包含在內 */
console.log((function(a, b = 1, c) {}).length); /* 1 */
// 只有在預設參數前的參數會被算到,也就是只有 a 會被視為必須傳入的參數
// 而 c 將被預設為 undefined
</pre>
<h2 id="規範">規範</h2>
{{Specifications}}
<h2 id="瀏覽器相容性">瀏覽器相容性</h2>
{{Compat}}
<h2 id="可參閱">可參閱</h2>
<ul>
<li>{{jsxref("Function")}}</li>
</ul>
|