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