js函数中的length属性

对于自定义函数:
function fun(a,b) {

console.log(a);

}

在chrome的开发工具中打印window对象,发现有自定义的函数fun和自有函数getComputedStyle.
图片描述

其中fun函数的形参有两个,所以length属性为2,getComputedStyle形参有一个,所以length为1,
那么为何显示fun:function fun(a,b)
却不显示 getComputedStyle:function getComputedStyle(形参1,形参2)呢?

阅读 4.7k
2 个回答

length 是函数对象的一个属性值,指该函数有多少个必须要传入的参数,那些已定义了默认值的参数不算在内,比如function(xx = 0)的length是0。

另外在函数内部:arguments.length 是函数被调用时实际传参的个数。

这跟length没多大关系,只是显示问题,因为自有函数自带检查参数的功能,你传入的参数类型个数不对,就会报错,显示形参没多大意义,但你自定义的函数不会啊,所以会显示完整的形参类型。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题