首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript函数中使用被忽略的参数的目的/好处是什么?

在JavaScript函数中使用被忽略的参数的目的/好处是什么?
EN

Stack Overflow用户
提问于 2011-04-02 06:52:27
回答 3查看 840关注 0票数 9

为了避免误解,这个问题不是关于允许在JS函数中使用可选参数。

我的问题是受jQuery parseXML函数的启发,该函数在jQuery.js中定义如下:

代码语言:javascript
复制
// Cross-browser xml parsing
// (xml & tmp used internally)
parseXML: function( data, xml, tmp ) { 
   ... 
} 

在函数体中,参数xml和和tmp都是在使用之前指定的。这意味着它们被用作局部变量,所以函数可以这样定义:

代码语言:javascript
复制
parseXML: function(data) { 
   var xml, tmp;
   ... 
}

除了在jQuery.js的精简版本中保存几个字符之外,第一种方法的好处是什么

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-08 08:06:33

如果我们定义两个函数。

代码语言:javascript
复制
function a ( foo ) { }
function b ( foo, bar, baz ) {}

...他们会报告不同的lengths...

代码语言:javascript
复制
console.log( [a.length, b.length] ); // logs [1, 3]

使用javascript的this little known feature是很少见的。

但是,除了将缩小的文件大小减少几个字节之外,这是我能想到的唯一其他原因。

票数 3
EN

Stack Overflow用户

发布于 2011-04-02 07:00:18

通常,如果您要将此函数作为回调或延续传递给另一个函数,并且API约定说“我用这些参数调用您的回调”,那么您可以向函数添加未使用的参数,以符合预先约定的函数签名,并且您不需要所有参数来执行您想在回调中执行的操作。(这将适用于任何语言,而不仅仅是JavaScript。)

在这种特定的情况下,我不知道。parseXML是如何使用的;它是直接调用的,还是用作可能需要3个参数的函数的其他函数的参数?

票数 1
EN

Stack Overflow用户

发布于 2011-04-08 07:52:53

(xml & tmp used internally)

你误解了它的意思。它们不是指函数中的“内部”。它们指的是在库内部。该函数的公共接口只有一个参数(data)。该函数的内网接口有3个参数。

这在整个jQuery中都很常见。一般来说,这些函数可以有或没有副作用。没有副作用的接口是公共的,jQuery本身会传入更多的参数来引起副作用,这是您作为一个用户不应该做的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5519701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档