为什么在javascript函数调用中使用方括号? jQuery的

时间:2012-08-15 09:35:43

标签: javascript jquery syntax widget

自: andrew whittakers example showing result numbers in a custom jquery autocomplete implementation

 _response: function(contents){
        $.ui.autocomplete.prototype._response.apply(this, arguments);
        $(this.element).trigger("autocompletesearchcomplete", [contents]);
    }

为什么[contents]而不是contents

3 个答案:

答案 0 :(得分:5)

jQuery的{​​{1}}函数要求第二个参数是一个数组(在1.6.2之前),因此包装使它成为一个数组。来自trigger docs(由我强调):

trigger
  

事件对象始终作为事件的第一个参数传递   handler,但是如果在a期间指定了其他参数   .trigger()调用,这些参数将被传递给处理程序   同样。 要传递多个参数,请使用此处所示的数组。   从jQuery 1.6.2开始,可以在不使用的情况下传递单个参数   阵列

从1.6.2开始,实际上没有必要将单个参数包装在数组中。

答案 1 :(得分:1)

如果函数需要数组,则将一个或多个元素放在方括号中。例如,trigger的函数声明是

  

.trigger(eventType [,extraParameters])

由于您可能希望为其提供多个额外参数,因此它接受一组数组。如果你只有一个额外的参数,比如你的情况下的“内容”,你就可以把它放到一个数组中(或者你只有一个参数,你也不能把它放到一个数组中,因为JQuery现在接受了无论哪种方式)。

答案 2 :(得分:0)

正如Trinh用一个元素指出它的数组[内容]。

我不知道为什么,但是如果你将它改为内容而不是[content],它将在整个单词中搜索查询。

如果它的[内容]它只会在开头搜索。