2013-04-05 88 views
2

Chrome和Safari都報告這是非法的。他們報告「意想不到的標記」這個''指向'this.b'。以下是顯示問題所需的最小代碼:爲什麼這個Javascript語法是非法的?

function x(){ this.a = function() {} this.b = function() {} } 

只有在兩個聲明位於同一行時纔會發生。有任何想法嗎?看起來對我來說合法。
這很煩人,因爲這是來自Javascript縮小器的內容。

+1

「{}」和「this.b」之間應該有';'。你使用什麼縮小器? – Blender 2013-04-05 20:35:28

+0

這就是爲什麼。使用分號。不過,如果不刪除多餘的空格,我懷疑你的縮小器是否有用。 – 2013-04-05 20:35:52

回答

2

JavaScript會自動在新行上插入分號。這裏缺少的是原始的分號來界定您的陳述的結尾。

在你的右大括號之後插入分號,如正確的JS,它會正常工作。

0

在函數x內沒有分號終止第一條語句。

分號插入僅適用於新行。

// Valid but nasty 
this.a = function() {} 
this.b = function() {} 

// Valid 
this.a = function() {}; 
this.b = function() {}; 

// Valid 
this.a = function() {}; this.b = function() {};