Javascript语法——我做错了什么?

Javascript语法——我做错了什么?,javascript,Javascript,我是javascript新手。我有两个文件--一个旧的和一个新的--我正在比较。但是,我在下面的代码中发现了语法错误。 在这里的某个地方,我的代码爆炸了。错误是“表达式不求值于函数”。关于我在哪里写错误语句,有什么语法上的想法吗 if(userCtx.name != oldDoc.Document.attributeA) { for (var key in oldDoc.Document) { if(newdoc.Document.hasOw

我是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.')
               }
            }
          }
        }
    } 

if(newdoc.Document.hasOwnProperty('key')要抛出对象文字,请将圆括号替换为花括号:

throw {
    forbidden: 'Only admins may change this field.'
};

您发布的代码是否在函数定义中?我在定义作为参数传递给其他对象的函数时看到了这个错误,并且忘记了将函数括在括号中。 例如:
“比较”:“函数(docA,docB){…}”

应该是:
“比较”:(函数(docA,docB){…})

,可能还有一个。。。
这是函数内部的吗?如果不是,您可能会在hasOwnProperty(“key”)之后的
返回;

您缺少一个“)”上出现错误。此外,vlad对下面的“throw”语句提出了很好的观点。是的!哇!谢谢还是会出错,所以我想还有其他原因。。。
throw {
    forbidden: 'Only admins may change this field.'
};