0

私はjavascriptを初めて使用します。比較している2つのドキュメント(古いものと新しいもの)があります。ただし、以下のコードのどこかで構文エラーが発生しています。
ここのどこかで、私のコードが爆発しています。エラーには、「式は関数に対して評価されません」と表示されます。私が間違ったステートメントを書いている場所の構文上のアイデアはありますか?

if(userCtx.name != oldDoc.Document.attributeA) { 
        for (var key in oldDoc.Document)
        {
          if(newdoc.Document.hasOwnProperty('key')
          {
            if(oldDoc.Document[key] != newDoc.Document[key])
            {
               if(key === 'attributeB')
               {
                 return;
               }
               else
               {
                 throw(forbidden: 'Only admins may change this field.')
               }
            }
          }
        }
    } 
4

4 に答える 4

7
if(newdoc.Document.hasOwnProperty('key') <-- I am missing a )
于 2012-08-15T21:09:46.127 に答える
3

オブジェクトリテラルをスローするには、丸括弧を中括弧に置き換えます。

throw {
    forbidden: 'Only admins may change this field.'
};
于 2012-08-15T21:10:30.967 に答える
0

投稿したコードは関数定義内にありますか?他の何かへの引数として渡される関数を定義するときにそのエラーを確認し、関数を括弧で囲むのを忘れました。例:次の
"compare": "function(docA, docB) { ... }"
ようになります。
"compare": "(function(docA, docB) { ... })"

于 2012-08-15T21:34:59.960 に答える
0

そしておそらくもう1つ...これは関数の中にありますか?そうでない場合は、エラーが発生する可能性がありますreturn;

于 2012-08-15T21:36:08.223 に答える