2016-06-17 38 views
-1

我正在閱讀HTML5遊戲中的一些源代碼,並且在其動畫函數中有一個return;行。我不確定它做了什麼。什麼是回報;在JavaScript中做?

function animate() { 
    if (somecondition) { 

    doSomething; 
    return; 

    } 

    renderSomethingElse(); 

    requestAnimationFrame(animate); 
} 

animate(); 

return;線實際上並不返回任何東西,它不會停止的動畫功能,它只是停止運行函數的其餘部分,除了requestAnimationFrame(animate);

編輯和結論:

我發現return;行實際上在animate()功能.forEach循環退出匿名函數。這就是爲什麼它不能退出animate()功能。

+0

[__'Return statement'__](https://en.wikipedia.org/wiki/Return_statement) – Rayon

+0

_「它不會停止動畫功能」_什麼讓你說 - 這個問題有沒有比你做出來的更多? –

+0

return將立即退出函數,'renderSomethingElse'和'requestAnimationFrame'不會被調用。 – Jim

回答

2

是的,這是一個早期退出。

function test(){ 
 
    alert('works'); 
 
    return; 
 
    alert("doesn't work"); 
 
} 
 
test();

這是以下條件的替代:

if (somecondition) { 
    // ... 
} else { 
    requestAnimationFrame(animate); 
}