什么'这两个函数在JavaScript中的区别是什么
What's the difference between these two functions in JavaScript?
类型1:
var EXAMPLE = function() {};
类型2:
var EXAMPLE = function($) {
return {};
}(jQuery);
我是JavaScript初学者,正在努力理解这两段代码之间的区别。在功能方面,当我尝试向EXAMPLE对象添加属性时,我没有看到区别。
这里有几个主要区别:
-
对于第一个,
EXAMPLE
的值最终成为一个函数对象。对于第二个,它最终是一个普通对象(而不是函数),因为在第二个中,函数被称为,并且您将其返回值({}
)存储在EXAMPLE
中。 -
第二个依赖于您定义了一个
jQuery
符号(可能是在页面上包含jQuery的结果)。第一个没有。
所以他们很不一样。
第一种是创建函数的一种非常通用的方法(在本例中,是一个什么都不做的函数)。
第二种是在不依赖$
全局的情况下使用jQuery的一种相当标准的方法(因为有时人们使用jQuery.noConflict()
来释放$
符号)。其思想是,由于jQuery
作为$
参数传递到函数中,因此中的函数代码可以使用$
,即使没有$
全局。人们通常会这样做,并返回一个带有函数的对象,比如:
jQuery.noConflict(); // Release $
display("typeof $ = " + typeof $); // "undefined"
var EXAMPLE = function($) {
return {
red: function(selector) {
// Note we can use $ here, even though $ isn't
// defined globally
$(selector).css("color", "red");
},
green: function(selector) {
$(selector).css("color", "green");
}
};
}(jQuery);
setTimeout(function() {
EXAMPLE.red("#target");
}, 700);
setTimeout(function() {
EXAMPLE.green("#target");
}, 1400);
function display(msg) {
jQuery("<p>").html(String(msg)).appendTo(document.body);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="target">I'm the target element</div>
此示例创建函数并将其分配给Example
var EXAMPLE = function() {};
此RUN函数和函数Example = {b: jQuery}
返回的赋值对象
var EXAMPLE = function($) {
return {b: $};
}(jQuery);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别