为了避免误解,这个问题不是关于允许在JS函数中使用可选参数。
我的问题是受jQuery parseXML函数的启发,该函数在jQuery.js中定义如下:
// Cross-browser xml parsing
// (xml & tmp used internally)
parseXML: function( data, xml, tmp ) {
...
} 在函数体中,参数xml和和tmp都是在使用之前指定的。这意味着它们被用作局部变量,所以函数可以这样定义:
parseXML: function(data) {
var xml, tmp;
...
}除了在jQuery.js的精简版本中保存几个字符之外,第一种方法的好处是什么
发布于 2011-04-08 08:06:33
如果我们定义两个函数。
function a ( foo ) { }
function b ( foo, bar, baz ) {}...他们会报告不同的lengths...
console.log( [a.length, b.length] ); // logs [1, 3]使用javascript的this little known feature是很少见的。
但是,除了将缩小的文件大小减少几个字节之外,这是我能想到的唯一其他原因。
发布于 2011-04-02 07:00:18
通常,如果您要将此函数作为回调或延续传递给另一个函数,并且API约定说“我用这些参数调用您的回调”,那么您可以向函数添加未使用的参数,以符合预先约定的函数签名,并且您不需要所有参数来执行您想在回调中执行的操作。(这将适用于任何语言,而不仅仅是JavaScript。)
在这种特定的情况下,我不知道。parseXML是如何使用的;它是直接调用的,还是用作可能需要3个参数的函数的其他函数的参数?
发布于 2011-04-08 07:52:53
(xml & tmp used internally)
你误解了它的意思。它们不是指函数中的“内部”。它们指的是在库内部。该函数的公共接口只有一个参数(data)。该函数的内网接口有3个参数。
这在整个jQuery中都很常见。一般来说,这些函数可以有或没有副作用。没有副作用的接口是公共的,jQuery本身会传入更多的参数来引起副作用,这是您作为一个用户不应该做的。
https://stackoverflow.com/questions/5519701
复制相似问题