过去我工作过的几个网站主要是使用 jquery 进行事件驱动,我通常这样制作我的函数
function abc() {
//do stuff
}
abc();
和
function foo() {
var a = $('.aaa');
var b = $('.bbb');
var c = $('.ccc');
function animal() {
//do stuff
}
animal();
function pet() {
//do stuff
}
pet();
}
foo();
我知道这不是最佳实践,但是我仍在学习并且它似乎有效。我只是想知道现在应该如何处理这个问题。
最佳答案
实际上,如果您在全局范围内定义所有这些函数(例如全局对象窗口的属性/方法),则示例中的代码(第一个代码)并不是您可以做的最好的事情。我更喜欢使用模块模式 http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript 我建议您阅读上面链接中的整本书。另一件非常有用的东西 - Stoyan Stefanov 的 JS Patterns 书 http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752 .
示例的另一种选择(第二个)是自执行函数:
(function () {
//attaching events and doing all other stuff
}());
自执行函数帮助您在第一次加载页面时做一些初始化工作。您可以附加事件或/和执行其他您应该执行一次的操作。它可以防止您污染全局范围并多次执行 init。
关于Javascript:声明函数的最佳实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007154/