在代码的开头还是结尾定义类和函数更可取?

iDo*_*ter 1 javascript php coding-style

我遵循的 Javascript 教程总是在使用之前定义,但我的 PHP 书总是在最后定义,并且实际上指出这被认为是一种很好的做法。

有没有理由这样做?

jfr*_*d00 5

如果您有内联代码正在执行(例如在加载时执行),那么必须在使用它们的代码之前定义全局变量。

可以按照您认为使代码最整洁、最易于阅读的任何顺序定义函数。

例如,在这段代码中:

foo();

function foo() {
    alert(x);
}

var x = 4;
?
Run Code Online (Sandbox Code Playgroud)

调用foo()将警告,undefined因为 x 在foo()被调用时还没有值,但您会注意到foo可以在出现在函数定义之前的代码中调用,因为所有函数都在实际执行任何代码之前加载。

至于最佳实践,我认为以最佳方式组织代码是有意义的,将相关功能的模块放在一起,但顺序通常并不重要。我相信你已经意识到 javascript 没有任何真正属于类的东西。它可以使用函数对象和原型来模拟其他语言具有的类类行为,但它并没有真正的类,因为它的对象基于原型,而不是类。