我负责一个javascript webapp。它非常复杂,我在语法上遇到了一些问题:
getThemeBaseUrl = function() {
var customConfigPath = "./customer-configuration";
if (parseQueryString().CustomConfigPath) {
customConfigPath = parseQueryString().CustomConfigPath;
}
var clientId = parseQueryString().ClientId;
return customConfigPath + "/themes/" + clientId;
};
parseQueryString = function() {
var result = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m;
while ( m = re.exec(queryString)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
};
特别是parseQueryString().CustomConfigPath
和var result = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m;
第一个似乎是 parseQueryString 函数的一种属性访问。
第二个似乎是一个数组声明,但没有 Array() 构造函数。此外,m
在 while 循环中调用该值而没有假定的数组结果。