2012-08-15 111 views
0

我是javascript的新手。我有兩個文件 - 新舊文件 - 我正在比較。但是,我在下面的代碼中找到了語法錯誤。
在這裏的某個地方,我的代碼被炸燬了。該錯誤說「表達式不會評估函數。」任何我正在寫錯誤陳述的句法思想?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.') 
       } 
      } 
      } 
     } 
    } 
+0

你錯過了hasOwnProperty(「key」)後的「)」 – Hacknightly 2012-08-15 21:10:24

+0

此外,弗拉德關於你的下面的「拋出」語句很好。 – Hacknightly 2012-08-15 21:12:32

回答

3

拋出對象文本,用花括號代替圓括號:

throw { 
    forbidden: 'Only admins may change this field.' 
}; 
7
if(newdoc.Document.hasOwnProperty('key') <-- I am missing a) 
+0

是的!哇。謝謝。仍然收到錯誤,所以我想還有其他的東西...... – Skitterm 2012-08-15 21:12:32

0

是你貼一個函數定義內的代碼?當定義函數作爲參數傳遞給別的東西時,我看到了這個錯誤,並忘記將函數包裝在括號中。 例如:
"compare": "function(docA, docB) { ... }"
應該是:
"compare": "(function(docA, docB) { ... })"

0

以及可能的一個更多... 這是一個函數裏?如果沒有,你可能會得到一個錯誤return;