[英]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.