猿问

函数声明 或 函数赋值 的 length 属性

一个很奇怪的 现象 ,求解析 :

let fo1 = function(x, y = 1) {}

fo1.length // 1

let fo2 = function(y = 1 ,x ) {}

fo2.length // 0

let fo3 = function(y , x ,z = 2) {}

fo3.length // 2

let fo4 = function(y , x ,z) {}

fo4.length // 3


温温酱
浏览 447回答 1
1回答

摇曳的蔷薇

这是函数参数传默认值的问题。定义了默认值的参数,必须是函数的尾部参数,其后不能再有其他无默认值的参数。这是因为有了默认值以后,该参数可以省略,只有位于尾部,才可能判断出到底省略了哪些参数。所以这儿的length指的是,函数的参数个数减去指定了默认值的参数个数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答