繁体   English   中英

用param调用no param javascript函数

[英]Calling a no param javascript function with a param

调用时javascript是否不检查功能参数。

即使没有参数调用,下面的该函数“ test”也会触发。

<input type="button" value="test" onclick="test()">

test = function(param){
 alert("test");   
}

小提琴:

http://jsfiddle.net/Yazpj/1912/

如果未抛出错误,或者javascript引擎/解析器在查找要调用的内容时甚至不检查函数参数。 这对覆盖功能有什么影响吗?

否,JavaScript不会检查参数。

多余的参数将被忽略。 已声明但未传递的参数的值将为undefined 所有传递的参数(已声明或其他形式)将出现在arguments伪数组中。

因为JS不支持覆盖功能,所以覆盖功能没有任何意义。

具有诸如带有多个签名的方法的jQuery之类的库,使用一个函数来确定所传递参数的类型,然后执行所需的操作。

您必须自己检查:

var test = function (param) {
    if (typeof param === 'undefined') {
        // do something...
    }
};

Javascript是一种非常灵活的语言,这只是其中的一个示例。 除非您不访问param ,否则不会出现任何错误,例如param.sender

至于您的替代问题,这是对的。 每个Javascript函数都有一个arguments变量,它是传递的参数的数组。 如果给名称定义函数JS的参数,只需按照顺序给它。

但是,覆盖是另一回事,通过检查arguments元素(有时只是数组的长度,有时是单个项目的类型)来实现覆盖。

例如; 当您调用$("#name").val()因为没有项目,如果参数这次具有jQuery用户适当的赋值,则仅返回值,例如element.value = arguments[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM