[英]What is the order of execution of code in Javascript?
JavaScript 中的代碼究竟是如何執行的? 我的意思是按什么順序? 如果我這樣聲明 function,執行順序會不會有所不同:
function render() {
// Code here
}
而不是這個:
var render = new function(){
// Same code here
}
JavaScript 是否執行腳本文件中定義的函數,無論它們是否被事件處理程序調用? (例如onload=function()
)。
And finally if a function is defined in another function, when the parent function is called, is the lower function also called too? 例如
function a(){
function b(){
// code
}
function c(){
//code
}
}
我試圖具體了解 JavaScript 中的執行順序。
提升了 function 聲明(因此可以在代碼中更早地調用它然后定義它),而不是 function 語句。
JavaScript 是否執行腳本文件中定義的函數,無論它們是否被事件處理程序調用?
一個 function 在被調用時被調用。 要么是因為某些東西具有theFunction
后跟()
(可能帶有參數),要么是因為它已成為事件處理程序。
onload="function"
如果那是 JS,那么它將為期望 function 的東西分配一個字符串。 如果是HTML,那么需要()
調用function。
And finally if a function is defined in another function, when the parent function is called, is the lower function also called too?
沒有。 A function 只有在被調用時才會被調用。 在另一個內部聲明 function 只會限制其 scope。
var render = new function(){
// same code here
}
new
關鍵字不會創建新的 Function。 它通過運行 function 創建一個新的 object。 所以這實際上會運行方法體並返回 object 。
如果您詢問何時解析函數並將其添加到 scope 那么這是特定於實現的,但是所有函數都被提升到 scope 的頂部,並且通常在執行任何代碼之前進行解析。
僅當您通過調用f()
調用函數時才會執行函數
當您聲明 function 時,它在被調用之前不會執行(對於在 onload 和其他事件中聲明的那些也是如此)。
對於嵌套函數,當調用頂層 function 直到包含 function 調用它們時,它們不會自動執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.