JQuery在匿名调用函数中:为什么?

时间:2013-08-17 18:06:26

标签: jquery

我刚刚关注了JQuery监听器的一些教程。

在本教程中,他们总是建议将所有JQuery脚本代码放在一个没有参数的匿名调用javascript函数中。

这有什么理由吗?听众在匿名函数体外工作。

3 个答案:

答案 0 :(得分:3)

如果你的意思是:

(function() {
    // Your code here
})();

这是因为你在该函数中声明的函数不会成为全局变量。全局命名空间非常拥挤,并且很少有任何理由可以添加它。

例如,如果您这样做:

<script>
function foo() {
    // ...do something useful...
}

// Use foo
foo(); // or `$("some selector").click(foo);`, etc.
</script>

...你要创建一个名为foo的全局。但如果你这样做:

<script>
(function() {
    function foo() {
        // ...do something useful...
    }

    // Use foo
    foo(); // or `$("some selector").click(foo);`, etc.
})();
</script>

......你没有。

答案 1 :(得分:0)

你的意思是文件就绪功能吗?

$(document).ready(function() {
}

简短版本:

$(function() {
});

这个函数,假定引用了jquery,将在你的dom准备就绪时触发。 不得与匿名自我调用混在一起:

(function() {
})();

最后一个与jquery

无关

答案 2 :(得分:-1)

你在说什么?你能更清楚一点吗?

你指的是这样的东西吗?

$(".some-class").bind("click hover", function(){
    // Do something
});

如果你指的是这个,那么这可能会有所帮助

Syntax

bind(eventType, data, listener)

这里eventType(字符串)是“click”,“hover”等事件 listener(function)是一旦触发eventType就必须执行的代码。

因此,无论名称如何,只要事件被触发就会运行该函数。