【发布时间】:2015-02-19 23:53:30
【问题描述】:
(function (a, b, c) {
console.log(arguments.length); // 2
} (1, 2) )
当上述函数运行时,该函数可以通过 arguments 对象的 length 属性告诉它是用两个参数调用的。
由于函数定义中列出了 a、b 和 c,函数是否还有一种方法可以告诉它需要 3 个参数?
在上述函数中:
console.log( what?) === 3?
我通读了这个答案Get a function's arity,但它需要对函数的引用(例如名称),并且没有回答我关于 console.log 在函数内的问题。
【问题讨论】:
-
实际上我确实找到了Finding the number of function parameters in JavaScript,它被关闭了。但是,我确实知道“arity”这个词,这将是我在 this 之后的下一次尝试……:-)
-
不,就这样吧。它将作为不知道确切术语的其他人的路标。 (删除问题对你的业力不利)
-
不,
.length不需要函数有名称。您只需要一个对函数对象的引用,就像您调用它时所需要的一样。在 IEFE 中,您可以使用arguments.callee,但这是被鄙视的,最好为您的函数命名;或者只使用一个常量。
标签: javascript function parameters arguments