2016-12-16 41 views
0

我已經寫了2個javascript函數,但它們不能以相同的方式工作。兩個javascript函數不能以相同的方式工作

console.log(func2());未定義。誰能告訴我爲什麼以及如何解決這個問題?

function func1() 
 
{ 
 
    return { 
 
     bar: "hello" 
 
    }; 
 
} 
 

 
function func2() 
 
{ 
 
    return 
 
    { 
 
     bar: "hello" 
 
    }; 
 
} 
 

 
console.log(func1()); 
 
console.log(func2());

+0

@Amadan:很好的發現,在我的名單上。 –

+0

@ T.J.Crowder:你有一個列表?它是公開的嗎? :)有時候我只知道必須有一個重複,但我找不到一個好的。 – Amadan

+0

@Amadan:我有一個非正式的,我只是把它保存在書籤中。 :-) –

回答

7

這是因爲automatic semicolon insertion從不return後面插入一個換行符,並且在要返回的內容之前,將它看作是終止return語句(例如,在return之後插入;),並且您的函數最終有效返回undefined

0

我知道這一個。它是分號插入。 func2被翻譯爲

function func2() 
{ 
    return; 
    { 
     bar: "hello" 
    }; 
} 

並返回undefine

相關問題