JavaScript方法参数合理化

JavaScript方法参数合理化,javascript,Javascript,我刚读了一些代码: 这里发生了什么?Array.prototype.indexOf有一个必需的参数searchElement,还有一个可选的参数fromIndex 通常length属性不应计算可选参数,但如果polyfill使用函数(elt,from),则length将为2 var f1 = function(a, b) {}, f2 = function(a /*,b*/) {}; f1.length; // 2 f2.length; // 1 因此,我的猜测是,它被注释以确保Arr

我刚读了一些代码:


这里发生了什么?

Array.prototype.indexOf
有一个必需的参数
searchElement
,还有一个可选的参数
fromIndex

通常
length
属性不应计算可选参数,但如果polyfill使用
函数(elt,from)
,则
length
将为
2

var f1 = function(a, b) {},
    f2 = function(a /*,b*/) {};
f1.length; // 2
f2.length; // 1
因此,我的猜测是,它被注释以确保
Array.prototype.indexOf.length
1
,如下所示:

indexOf
方法的
length
属性为1

注意注释它并没有限制它的功能,因为它仍然可以通过
参数[1]
访问


也可以删除它(忽略注释)。但是,将其作为注释可能会对作者有所帮助。

Array.prototype.indexOf
有一个必需的参数
searchElement
,还有一个可选的参数
fromIndex

通常
length
属性不应计算可选参数,但如果polyfill使用
函数(elt,from)
,则
length
将为
2

var f1 = function(a, b) {},
    f2 = function(a /*,b*/) {};
f1.length; // 2
f2.length; // 1
因此,我的猜测是,它被注释以确保
Array.prototype.indexOf.length
1
,如下所示:

indexOf
方法的
length
属性为1

注意注释它并没有限制它的功能,因为它仍然可以通过
参数[1]
访问


也可以删除它(忽略注释)。不过,将其作为注释可能对作者有所帮助。

Javascript中的所有函数都有一个隐式的“arguments”参数。来自*/的注释的
/*没有做任何事情,但作者显然是想提醒您可以将另一个参数传递给此函数。您可以在下面看到他们读取参数的位置:
var from=Number(参数[1])


这里有一个参考:

Javascript中的所有函数都有一个隐式的“arguments”参数。来自*/
的注释的
/*没有做任何事情,但作者显然是想提醒您可以将另一个参数传递给此函数。您可以在下面看到他们读取参数的位置:
var from=Number(参数[1])


这里有一个参考:

这在所有浏览器上呈现相同吗?我觉得很奇怪,它会把一条评论计入length@user2712605准确地说,注释参数被忽略,因此不被计算。这在所有浏览器上呈现相同吗?我觉得很奇怪,它会把一条评论计入length@user2712605确切地说,已注释的参数被忽略,因此不计算在内。
var f1 = function(a, b) {},
    f2 = function(a /*,b*/) {};
f1.length; // 2
f2.length; // 1