“未定义”参数在函数定义中意味着什么[重复]

2024-04-21

我对 jQuery 插件进行逆向工程,发现了一个特殊的函数定义。

function myFunction(value, undefined){
  ...
}

当然,这可行,但类似的声明

function myFunction(value, null) {
  ...
}

OR

function myFunction(value, 5) {
  ...
}

不工作。

参数所在的初始声明undefined其工作方式类似于默认参数值(请参阅下面的代码片段)。有人可以在 ECMA6 规范中指出这种现象吗?我知道要搜索什么。

function strange (value, undefined) {
  document.getElementById("output").innerHTML += "<br/>" + "- " + arguments[1];
}

strange(5,6);
strange(5);
<div id="output"></div>

Oddly, undefined is not保留关键字及其全局值可以被覆盖(或者可以是过去的,在某些运行时环境中)。因此,这个技巧提供了一种包装代码的方法,期望undefined真正成为undefined:当调用该函数时,如果仅传递一个参数,则称为“未定义”的第二个参数将具有真实的undefined函数内的值。

为什么会undefined被覆盖?谁知道。为还必须托管第 3 方代码(通常是广告之类的东西)的页面编写代码的人在一段时间后会变得偏执和防御。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“未定义”参数在函数定义中意味着什么[重复] 的相关文章

随机推荐