1

おそらく、この質問はあまり建設的ではありませんが、この構文エラーが発生する理由を理解できるようです:

 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 ; 
            };

        };
4

1 に答える 1

6

return同じ行の値が続く必要があります。

        return
        {
            computeTotalPrice : computeTotalPrice,
            HightLightChangedPrices : HightLightChangedPrices 
        };

する必要があります

        return {
            computeTotalPrice : computeTotalPrice,
            HightLightChangedPrices : HightLightChangedPrices 
        };

問題は「制限付き生産」にあります。 http://es5.github.io/#x5.1.6言う

「[no LineTerminator here]」という語句が構文文法のプロダクションの右側にある場合、そのプロダクションが制限されたプロダクションであることを示します。示された位置。たとえば、生産:

ReturnStatement :
    return [ここに LineTerminator はありません] Expression opt ;

JavaScript パーサーはコードを認識し、最初の行、a、returnおよび行末記号を解析するため、セミコロンを挿入してから次の行に進みます。{トップレベルのExpressionステートメント{:

ExpressionStatement :
    [先読み ∉ { {, function}] 式 ;

ブロックの中に、

 computeTotalPrice : computeTotalPrice, HightLightChangedPrices

は有効なラベル付きステートメントですが、ステートメントの後に有効に a を続けることはできません:。そのため、セミコロンが必要です。

于 2013-05-20T14:57:49.930 に答える