调用Javascript函数后的括号是什么?

Tay*_*gns 1 javascript parameters function callback

所以我在网上找到了这个脚本,除了2个部分我理解了所有内容:

1)var first = getUrlVars()["id"]; var second = getUrlVars()["page"];

我从来没有见过带括号的函数,它是什么意思/做什么?

2)功能(m,键,值)

这些参数来自哪个(m,键,值)?

window.location将是:http://papermashup.com/index.php?id = 123&page = home

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}

var first = getUrlVars()["id"];
var second = getUrlVars()["page"];

alert(first);
alert(second);
Run Code Online (Sandbox Code Playgroud)

mar*_*tch 5

var first = getUrlVars()["id"];

该行调用该getUrlVars()函数,然后访问id返回对象的属性,然后将该first变量设置为该属性的值.

function(m,key,value)是一个匿名函数,作为参数传递给对象replace上的String函数.文档在这里.本质上,它将函数传递给函数的这个参数replace:

要调用以创建新子字符串的函数(用于替换从参数#1接收的子字符串).提供给此函数的参数在下面的"将函数指定为参数"部分中进行了描述.