【问题标题】:could you explain the function in javascript? [duplicate]你能解释一下javascript中的函数吗? [复制]
【发布时间】:2011-09-22 01:11:30
【问题描述】:

可能重复:
What does this mean? (function (x,y)){…}){a,b); in JavaScript

(function(){
    var foo = 'Hello world';
})();

不知道有什么用?它是什么意思/?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    除了声明一个未使用的变量外,它本身什么也不做——它应该调用一些其他函数来做一些有用的事情。

    也就是说,你所拥有的是一个立即调用的函数表达式,即一个匿名函数:

    function() { ... }
    

    不带参数调用:

    (f....)();
    

    理由有两个:

    • 它允许定义和调用函数,而无需在全局名称空间中为其命名
    • 在函数定义的任何变量也都保存在该范围内,并且不会污染全局名称空间。

    【讨论】:

    • 每个没有名字的函数表达式都是匿名函数。
    【解决方案2】:

    这是一个立即执行的匿名函数。

    这个想法是创建一个私有范围。通常会从匿名函数返回一个闭包,该函数保留对该范围内创建的变量的访问权限。

    例如

    var greet = (function () {
        var foo = 'Hello world';
        return function () {
            alert(foo);
        }
    }());
    
    greet();
    

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 它有时也被称为闭包,因为它所做的只是创建一个新的范围
      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多