也许这个问题不太具有建设性,但似乎我可以弄清楚为什么我会遇到这种语法错误:
var operations = function () {
function computeTotalPrice(elem) {
var totalpriceafter = 0;
$(".totalForProductNotDeleted").each(function () {
var pp = parseFloat($(this).html().toString().replace(",", "."));
totalpriceafter += pp;
});
return totalpriceafter;
};
function HightLightChangedPrices(elem) {
elem.parent().parent().parent().find(".totalForProduct").effect("highlight");
$("#totalPrice").effect("highlight");
};
return
{
computeTotalPrice : computeTotalPrice,
HightLightChangedPrices : HightLightChangedPrices / I get expected ;
};
};
答案 0 :(得分:6)
return
后面必须跟一个值。
return
{
computeTotalPrice : computeTotalPrice,
HightLightChangedPrices : HightLightChangedPrices
};
应该是
return {
computeTotalPrice : computeTotalPrice,
HightLightChangedPrices : HightLightChangedPrices
};
问题在于“限制制作”。 http://es5.github.io/#x5.1.6说
如果短语“[此处没有LineTerminator]”出现在句法语法生成的右侧,则表示生产是限制生产:如果输入中出现LineTerminator,则可能无法使用它在指定的位置流。例如,制作:
ReturnStatement :
return
[此处没有LineTerminator] 表达式 opt { {1}}
JavaScript解析器会看到你的代码并解析第一行,;
然后解析行终止符,然后它inserts a semicolon,然后进入下一行。然后它会看到return
并将其解释为语句块的开头,因为顶级Expression Statement无法以{
开头:
ExpressionStatement :
[lookahead∉{{
,{
}]表达式function
在街区内,
;
是有效的labelled statement,但是 computeTotalPrice : computeTotalPrice, HightLightChangedPrices
无法有效地跟随一个语句,这就是为什么它要求分号的原因。