使用arguments.length
我可以看到有多少参数传递给函数。
但有没有办法确定一个函数可以使用多少个参数,所以我知道应该传递多少个参数?
答案 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
弄乱