0

我是 JavaScript 新手。我有两份文件——一个旧的和一个新的——我正在比较。但是,我在下面的代码中的某处遇到语法错误。
在这里的某个地方,我的代码正在爆炸。错误说“表达式不评估函数。” 关于我在哪里写了不正确的陈述的任何句法想法?

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

可能还有一个……这是在函数内部吗?如果不是,您可能会在return;

于 2012-08-15T21:36:08.223 回答