我目前正在玩 playframework。 我从使用 Coffeescript 的教程开始。 CoffeeScript 被转换为 javascript,在这个特定的例子中,javascript 方法需要在页面加载时动态生成一个列表。
生成的 JavaScript 使用了我以前见过的模式,我读过该模式可用于确定变量或函数的作用域。也就是说,它将所有内容都封装在匿名函数中。
但是,在该匿名函数中是 JQuery 风格的 window.isReady 回调。
(function() {
$(function() {
// the code within the callback goes here!
});
}).call(this);
这仅仅是由于一组编程规则生成的结果,还是有理由在匿名函数内进行回调?确定 JQuery onReady 回调范围的原因?
当然,该功能无需被自调用的匿名函数封闭即可工作。那么,有什么好处吗?
最佳答案
由于函数界定了范围,因此您希望将此作为防止污染全局命名空间的最佳实践。
在这个简单的示例中,可能没有必要,因为您没有保存任何变量,但您可以拥有私有(private)函数或其他函数(而不是全局函数)
像这样:
(function() {
var a = 5;
var f = function() { ... }
$(function() {
// the code within the callback goes here!
f();
console.log(a);
});
}).call(this);
关于javascript - 为什么在 javascript 中,一个自调用的匿名函数会包围 jQuery onReady 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34515426/