39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Function Length | |||
|  | localeTitle: 功能长度 | |||
|  | --- | |||
|  | ## 功能长度
 | |||
|  | 
 | |||
|  | 函数对象的`length`属性保存调用时函数所期望的参数数。 | |||
|  | 
 | |||
|  | ```javascript | |||
|  | function noArgs() { }  | |||
|  |   | |||
|  |  function oneArg(a) { }  | |||
|  |   | |||
|  |  console.log(noArgs.length); // 0  | |||
|  |   | |||
|  |  console.log(oneArg.length); // 1  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### ES2015语法
 | |||
|  | 
 | |||
|  | ES2015,或通常称为ES6,引入了rest操作符和默认函数参数。这两个添加都改变了`length`属性的工作方式。 | |||
|  | 
 | |||
|  | 如果在函数声明中使用了rest运算符或默认参数,则`length`属性将仅包含rest运算符或默认参数之前的参数数。 | |||
|  | 
 | |||
|  | ```javascript | |||
|  | function withRest(...args) { }  | |||
|  |   | |||
|  |  function withArgsAndRest(a, b, ...args) { }  | |||
|  |   | |||
|  |  function withDefaults(a, b = 'I am the default') { }  | |||
|  |   | |||
|  |  console.log(withRest.length); // 0  | |||
|  |   | |||
|  |  console.log(withArgsAndRest.length); // 2  | |||
|  |   | |||
|  |  console.log(withDefaults.length); // 1  | |||
|  | ``` | |||
|  | 
 | |||
|  | 有关`Function.length`更多信息可以在[Mozilla的MDN Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length)上找到。 |