检查函数在Javascript中需要多少个参数?

时间:2010-11-09 20:06:05

标签: javascript

使用arguments.length我可以看到有多少参数传递给函数。

但有没有办法确定一个函数可以使用多少个参数,所以我知道应该传递多少个参数?

3 个答案:

答案 0 :(得分:76)

Function.length将完成这项工作(在我看来真的很奇怪)

function test( a, b, c ){}

alert( test.length ); // 3

顺便说一句,这个长度属性非常有用,请查看John Resig关于Javascript的教程的these slides

答案 1 :(得分:7)

arity属性指定当前函数期望接收的参数数。这与arguments.length不同,后者表示传递了多少实际参数。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/arity

修改

请注意,自v1.4起,arity已被弃用。正如Harmen建议的那样,获得预期参数数量的正确方法现在是function.length

答案 2 :(得分:1)

副作用

当心,在指望viewDidLoad()之前,在某些极端情况下结果可能不是您期望的:

viewWillAppear()

private func adjustScrollViewInsets() { // This snippet only insets the bottom of the table view, but you may need to adjust both top and bottom edges if you also need to accommodate a top navigation bar. var contentInset = tableView.contentInset if let windowInsets = view.window ?? UIApplication.shared.keyWindow?.safeAreaInsets { contentInset.bottom = windowInsets.bottom } else { contentInset.bottom = 0 } tableView.contentInset = contentInset } 似乎无法识别默认值或rest运算符。

您可以将此codePen

弄乱