究竟是什么.params及其作用是什么?

时间:2014-05-01 08:32:38

标签: javascript jquery

我目前正在通过学​​习jQuery第4版,我给出了一个接受一个文本输入的表单的示例。表单在提交时,通过jQuery文档搜索输入的字符串,将其检索为一个JSONP对象并显示它。

在示例中,我获得了以下代码提取

//more code

  var buildItem = function(item) {
    var title = item.name,
        args = [],
        output = '<li>';

    if (item.type == 'method' || !item.type) {
      if (item.signatures[0].params) {
        $.each(item.signatures[0].params, function(index, val) {
          args.push(val.name);
        });
      }
      title = (/^jQuery|deferred/).test(title) ? title : '.' + title;
      title += '(' + args.join(', ') + ')';
    } else if (item.type == 'selector') {
      title += ' selector';
    }
    output += '<h3><a href="' + item.url + '">' + title + '</a></h3>';
    output += '<div>' + item.desc + '</div>';
    output += '</li>';

    return output;
  };

//more code

我无法理解这条线

 $.each(item.signatures[0].params, function(index, val) {
              args.push(val.name);
            });

具体是什么.params实际上做了什么?我知道它是从返回的对象中的签名内访问.params,但我在返回的对象中看不到任何.params,我也无法在.params上找到任何文档。

任何帮助都将不胜感激。

jsFiddle可以在这里找到:http://jsfiddle.net/QPR4Z/2/

1 个答案:

答案 0 :(得分:2)

请参阅signatures[0]中的值 - 请注意,它是来自JSON请求的任意数据 [对于jQuery API文档]。也就是说,除了作为普通属性访问的功能外,“。params”不会执行任何操作。尽管语法高亮,但是保留字,并且没有特殊含义。


以下是一些相关的提取JSON来说明这一点:

"signatures":[
  { //  <-- i.e. signatures[0]
    "added":"1.8",
    "params":[    // <-- property called "params", which represents an array
                  //     of objects that describe the given parameter
      {"name":"selector","type":"Selector",..}
    ],
    ..
  },
  ..
]