这个代码在Javascript中是什么?

Ken*_*n D 5 javascript jquery

在一些网站上的一些JS代码中,我看到如下的Javascript代码:

SomeName.init = (function () {
    // some stuff
})();
Run Code Online (Sandbox Code Playgroud)

我的意思是,这不是一个jQuery插件代码,如下所示:

(function( $ ){
    $.fn.myPlugin = function() {

    // Do your awesome plugin stuff here

    };
})( jQuery );
Run Code Online (Sandbox Code Playgroud)

那这是什么?什么是生成的JS对象?

Rob*_*b W 8

它是一个匿名函数,在使用声明变量时不会将变量泄漏到全局范围var.

SomeName.init = (function () {
    return 3.1415;
})();
Run Code Online (Sandbox Code Playgroud)

SomeName.init是一个数字(3.1415),因为()在匿名函数声明后执行该函数.除非在匿名函数中定义,否则无法获取原始函数:

(function foo(){
    //foo refers to this function
    too = foo;
})();;
//foo is undefined
//too refers to the function, because `too` has been defined without var
Run Code Online (Sandbox Code Playgroud)


J. *_*mes 2

模块模式。这两个片段的共同点比你想象的要多。