Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这段代码在Javascript中是什么?_Javascript_Jquery - Fatal编程技术网

这段代码在Javascript中是什么?

这段代码在Javascript中是什么?,javascript,jquery,Javascript,Jquery,在一些网站的一些JS代码中,我看到如下Javascript代码: SomeName.init = (function () { // some stuff })(); (function( $ ){ $.fn.myPlugin = function() { // Do your awesome plugin stuff here }; })( jQuery ); 我的意思是,这不是像这样的jQuery插件代码: SomeName.init = (funct

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

SomeName.init = (function () {
    // some stuff
})();
(function( $ ){
    $.fn.myPlugin = function() {

    // Do your awesome plugin stuff here

    };
})( jQuery );
我的意思是,这不是像这样的jQuery插件代码:

SomeName.init = (function () {
    // some stuff
})();
(function( $ ){
    $.fn.myPlugin = function() {

    // Do your awesome plugin stuff here

    };
})( jQuery );

那是什么?产生的JS对象是什么?

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

SomeName.init = (function () {
    return 3.1415;
})();
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

这个。这两个代码段的共同点比您想象的要多。

无论函数返回什么

(function() {
    //...
})();
用作命名空间代码或声明自执行构造函数的方法。结果对象是自执行函数返回的任何对象

(function() {
    //...
})();
第二个代码段不返回任何内容,并且没有
结果JS对象

(function () {
    // some stuff
})()

是一个立即调用自身的匿名函数。它只是一个围绕内部代码的闭包,以阻止变量范围变得全局。

I。。。不知道你在问什么。这两个代码段都演示了一个声明和执行的函数。除此之外,它们似乎并不相关。第一个是将匿名函数的结果设置为名为“init”的变量。如第二个示例所示,匿名函数是一种设计模式,通常用于创建插件(或模块),因此通常称为“模块模式”。当我在搜索框中键入你的标题时。@u1258ӪӪ我在发布问题之前使用了搜索功能,但是有很多问题都是以这个标题出现的。当然,它们不是彼此的副本,但我没有找到您共享的。