我在网上发现了一个
javascript示例,让我有些困惑.我很新的javascript,但在“传统”语言中有很好的知识.当我尝试google时,我无法找到答案,所以我会问这里的问题,希望有人可以帮助我.
从一个“类”执行以下代码:
this.foo.addListener("xType",this,this.boo);
//first argument (type:String) what kind of event //second argument (type:Function) listener - listening function addListener: function(kindOf,listener) {
我不明白的是参数的数量不匹配.当函数被调用时,使用3个参数即“xType”,这个和this.boo,但是在函数签名中只有2个参数,即kindOf和listener.这是一些JavaScript功能,您可以使用函数中声明的其他参数量来调用函数吗?或者这个代码应该如何工作?
解决方法
Is this some javascript functionality that you can call functions with some other amount of arguments than what is declared in the function?
这是对的. JavaScript不要求您调用与用于定义相同参数数量的函数.
如果你把它称为太少,那么缺少的值就会有the special value undefined
.如果你使用太多的值,这个函数需要使用the special array value arguments
来获取它们.例如,
function alertMany() { for (var i = 0; i < arguments.length; i++) { alert(arguments[i]); } } alertMany("hello","goodbye"); alertMany("hello","hello again","hello once more","farewell"); alertMany()