类型1:
var EXAMPLE = function() {};
类型2:
var EXAMPLE = function($) {
return {};
}(jQuery);
我是JavaScript初学者并试图理解这两段代码之间的区别。在功能方面,当我尝试向EXAMPLE对象添加属性时,我没有看到区别。
答案 0 :(得分:8)
那里有几个主要的区别:
对于第一个,EXAMPLE
的值最终成为一个函数对象。对于第二个,它最终成为一个普通对象(而不是一个函数),因为在第二个中,该函数被称为,并且您将存储其返回值({{ 1}})在{}
。
第二个依赖于您定义了EXAMPLE
符号(可能是因为在页面上包含了jQuery)。第一个没有。
所以他们非常不同。
第一种是创建函数的非常通用的方法(在这种情况下,是一个不做任何事情的函数)。
第二种是使用jQuery而不依赖于jQuery
全局的相当标准的方法(因为有时人们使用$
来释放jQuery.noConflict()
符号)。这个想法是,因为$
作为jQuery
参数传递给函数,在中,即使没有{{},函数代码也可以使用$
1}} 全球。人们经常这样做并返回一个带有函数的对象,如下所示:
$

$

答案 1 :(得分:0)
此示例创建函数并将其分配给Example
var EXAMPLE = function() {};
此RUN函数和赋值函数Example = {b: jQuery}
var EXAMPLE = function($) {
return {b: $};
}(jQuery);