Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么第二个函数参数在注释块中?只是好奇_Javascript_Function_Parameters_Comments - Fatal编程技术网

Javascript 为什么第二个函数参数在注释块中?只是好奇

Javascript 为什么第二个函数参数在注释块中?只是好奇,javascript,function,parameters,comments,Javascript,Function,Parameters,Comments,我发现了这段代码,我不理解参数中注释块的用途: if (!Array.prototype.some) { Array.prototype.some = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i

我发现了这段代码,我不理解参数中注释块的用途:

if (!Array.prototype.some)
{
  Array.prototype.some = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this && fun.call(thisp, this[i], i, this))
        return true;
    }

    return false;
  };
}

如果定义了
Array.prototype.some
,则原始方法具有第二个参数,即
thisp
,但由于未定义该参数,因此作者定义了自己的方法来模拟该功能

作者希望调用方传递第二个参数,即
thisp

HTH.

实现了
数组.prototype。Firefox内置的一些
具有1的算术数,即它接受一个参数。为了实现第二个可选参数而不改变算术性,替换代码改为通过
参数[1]
访问第二个参数


实际上,我不知道EcmaScript规范对
Array.prototype的arity有什么规定。有些

您是对的,它应该是一个参数,因为1。在函数中使用函数
参数
是和2。它是硬连线到函数中的,尽管它可以在实际循环中保持
未定义。我认为,这种方法不应该出现在生产代码中。通过进一步测试,我们不清楚第二个参数究竟做了什么。这是一只奇怪的鸭子,但也许我错过了什么。

你能问问代码的原始作者吗?伙计,这只是一个评论!它没有意义,它就在那里!谁知道他想用这个参数做什么?看来这个问题最好直接问到相关代码的作者。。。[编辑添加:哦,看,其他人先到了那里,也说了同样的话。我将把这个放在这里,提醒自己在评论之前刷新:-)。@Gareth:我的印象是,现在在你打字时刷新…在这种情况下,我似乎没有这样做。是的,但他可以保存一行代码来避免这种情况。对我来说不合理的行为。:)@幸运的是,看看这个。
var thisp = arguments[1];