特别是对于对象,我不明白对象的哪些部分在初始化之前运行,哪些部分在初始化时运行以及哪些部分在初始化后运行。
编辑:似乎解析时间是错误的词。我想我应该提出这样一个问题:“在两次读取中,第一遍读取什么,第二遍读取什么?”
最佳答案
JavaScript 文件以 2 遍读取的方式运行。第一遍解析语法并收集函数定义,第二遍实际执行代码。通过注意到以下代码的工作原理可以看出这一点:
foo();
function foo() {
return 5;
}
但以下内容则不然
foo(); // ReferenceError: foo is not defined
foo = function() {
return 5;
}
但是,了解这一点并没有多大用处,因为第一遍中没有任何执行。您根本无法利用此功能来改变您的逻辑。
关于javascript - 在 JavaScript 中,哪些代码在运行时执行,哪些代码在解析时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4023706/