!function () {}();
Run Code Online (Sandbox Code Playgroud) 在javascript中,你想什么时候使用它:
(function(){
//Bunch of code...
})();
Run Code Online (Sandbox Code Playgroud)
对此:
//Bunch of code...
Run Code Online (Sandbox Code Playgroud) 你能解释一下JavaScript中封装的匿名函数语法背后的原因吗?为什么这样做:(function(){})();但这不是:function(){}();?
在JavaScript中,可以创建一个这样的命名函数:
function twoPlusTwo(){
alert(2 + 2);
}
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)
您还可以创建匿名函数并将其分配给变量:
var twoPlusTwo = function(){
alert(2 + 2);
};
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)
您可以通过创建匿名函数来封装代码块,然后将其包装在括号中并立即执行:
(function(){
alert(2 + 2);
})();
Run Code Online (Sandbox Code Playgroud)
这在创建模块化脚本时非常有用,可以避免使当前作用域或全局作用域混乱,并且可能存在冲突的变量 - 例如Greasemonkey脚本,jQuery插件等.
现在,我理解为什么会这样.括号包含内容并仅公开结果(我确定有更好的方法来描述),例如with (2 + 2) === 4.
但我不明白为什么这也不起作用:
function(){
alert(2 + 2);
}();
Run Code Online (Sandbox Code Playgroud)
你能解释一下吗?
我见过:
!function(){ //code }();
Run Code Online (Sandbox Code Playgroud)
用于几个地方立即执行匿名功能.通常,它用于代替:
(function(){ //code }())
Run Code Online (Sandbox Code Playgroud)
有谁知道!实际上如何执行该功能?
它们是windowif的本地属性为什么它被称为jQuery,肯定jquery来自javascript之后
编辑:我正在浏览jquery.js,发现这两行让我想知道它们到底是什么意思.如果不是window.Jquery为null,因为JQuery不是窗口的变量?
_jQuery = window.jQuery,
_$ = window.$,
Run Code Online (Sandbox Code Playgroud) 可能重复:
感叹号在功能之前做了什么?
什么!function($){$(function(){})}(window.jQuery)呢?
"!function($){}(window.jQuery)"是什么意思?
<script type="text/javascript">
!function($){
//some codes here
}(window.jQuery)
</script>
Run Code Online (Sandbox Code Playgroud)
这个js原始代码网址:http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js