一个很奇怪的 现象 ,求解析 :let fo1 = function(x, y = 1) {}fo1.length // 1let fo2 = function(y = 1 ,x ) {}fo2.length // 0let fo3 = function(y , x ,z = 2) {}fo3.length // 2let fo4 = function(y , x ,z) {}fo4.length // 3
1 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
这是函数参数传默认值
的问题。
定义了默认值的参数,必须是函数的尾部参数,其后不能再有其他无默认值的参数。
这是因为有了默认值以后,该参数可以省略,只有位于尾部,才可能判断出到底省略了哪些参数。
所以这儿的length指的是,函数的参数个数减去指定了默认值的参数个数
。
添加回答
举报
0/150
提交
取消