这两个函数在JavaScript中的区别是什么?

时间:2014-09-29 07:48:44

标签: javascript jquery

类型1:

var EXAMPLE = function() {};

类型2:

var EXAMPLE = function($) {
    return {};
}(jQuery);

我是JavaScript初学者并试图理解这两段代码之间的区别。在功能方面,当我尝试向EXAMPLE对象添加属性时,我没有看到区别。

2 个答案:

答案 0 :(得分:8)

那里有几个主要的区别:

  1. 对于第一个,EXAMPLE的值最终成为一个函数对象。对于第二个,它最终成为一个普通对象(而不是一个函数),因为在第二个中,该函数被称为,并且您将存储其返回值({{ 1}})在{}

  2. 第二个依赖于您定义了EXAMPLE符号(可能是因为在页面上包含了jQuery)。第一个没有。

  3. 所以他们非常不同。

    第一种是创建函数的非常通用的方法(在这种情况下,是一个不做任何事情的函数)。

    第二种是使用jQuery而不依赖于jQuery全局的相当标准的方法(因为有时人们使用$来释放jQuery.noConflict()符号)。这个想法是,因为$作为jQuery参数传递给函数,中,即使没有{{},函数代码也可以使用$ 1}} 全球。人们经常这样做并返回一个带有函数的对象,如下所示:

    
    
    $
    
    $
    
    
    

答案 1 :(得分:0)

此示例创建函数并将其分配给Example

var EXAMPLE = function() {};

此RUN函数和赋值函数Example = {b: jQuery}

返回的对象
var EXAMPLE = function($) {
    return {b: $};
}(jQuery);