有人可以指出这段代码中的错误吗?
function inspect(useDoubleQuotes) {
var escapedString = this.replace(/[\x00-\x1f\\]/g, function (character) {
if (character in String.specialChar) {
return String.specialChar[character]
}
return "\\u00" + character.charCodeAt().toPaddedString(2, 16)
});
if (useDoubleQuotes) {
return '"../' + escapedString.replace(/default.htm"/g, '\\"') + '"'
}
return "'../_+escapedString.replace(/default.htm'/g,"\\'")+"'"}function toJSON(){return this.inspect(true)}function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,"$1")}function isJSON(){var str=this;if(str.blank()){return false}str=this.replace(/\\./g,"@").replace(/" [ ^ "\\\n\r]*" / g, "");
return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str)
}
答案 0 :(得分:2)
简单:在函数结束时有两个连续的return语句。第一个,我无法阅读,但我怀疑在第一个'
之前错过+
。
编辑:这是您的错误:
缺少
这意味着您错过了返回语句末尾的;
:
if (useDoubleQuotes) {
return '"../' + escapedString.replace(/default.htm"/g, '\\"') + '"'
}
答案 1 :(得分:1)
在函数末尾的两个连续返回中的第一个返回时,字符串以双引号开头,使得该行的其余部分无法使用。
查看上面的返回以使其正确(它们以相同的方式启动,语法突出显示为您指出)。