当我看到类似的东西时:
<html>
<head>
<link rel=”stylesheet” href=”css/bootstap.min.css”>
</head>
<body>
<span class=”btn btn-success fileinput-button”>
<i class=”glyphicon glyphicon-plus”></i>
<input id=”fileupload” type=”file” name=”files[]” multiple>
</span>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
<script src=”js/bootstrap.min.js”></script>
<script>
$(function () {
});
</script>
</body>
</html>
如何以及何时在html页面上调用匿名函数?
我不明白这是如何运作的。我并不是完全不了解javascript,但我已经多次看过这个,我想知道它是如何工作的。
我也见过.js文件:
(function (factory) {
}(function($) {
});
也许有人可以帮我理解这些语义是什么意思?
答案 0 :(得分:4)
Javascript顶级语句只是在加载脚本时按顺序执行。在您的第一个示例中,只有一个语句,即对名为$
的函数的调用。调用$(function() {...})
等同于调用:
$(document).ready(function() {
...
});
因此它声明在DOM准备就绪时将执行匿名函数。
你的第二个例子是IIFE(立即执行函数表达式)。它定义了一个以factory
为参数的函数,并使用匿名函数作为参数调用该函数。
答案 1 :(得分:0)
•$(function(){
}); 和...一样 $(document).ready(function(){...});
当DOM准备就绪时调用此函数,这意味着您可以开始查询元素。 .ready()将在不同的浏览器上使用不同的方式来确保DOM真的准备就绪。
•(function(){...})();
这只不过是一个在浏览器解释你的ecma- / javascript时尽快调用自身的函数。因此,你不太可能在这里成功地对DOM元素采取行动。