![](/img/trans.png)
[英]Why sometimes in Javascript there is the dollar sign ($arg) before function argument?
[英]Dollar sign before self declaring anonymous function in JavaScript?
這兩者有什么區別:
$(function () {
// do stuff
});
和
(function () {
// do stuff
})();
第一個使用jQuery將函數綁定到document.ready
事件。 第二個聲明並立即執行一個函數。
$(function() {});
是一個jQuery快捷方式
$(document).ready(function() {
/* Handler for .ready() called. */
});
while (function() {})();
是一個即時調用的函數表達式,或IIFE。 這意味着它是一個表達式(不是語句),它在創建后立即被調用。
一個是jquery $(document).ready
函數,另一個是調用自身的匿名函數。
它們都是匿名函數,但是(function(){})()
立即被調用,並且在文檔准備好時調用$(function(){})
。
jQuery的工作方式與此類似。
window.jQuery = window.$ = function(arg) {
if (typeof arg == 'function') {
// call arg() when document is ready
} else {
// do other magics
}
}
所以你只是調用jQuery函數並傳入一個函數,該函數將在文檔就緒時調用。
“自執行匿名函數”與執行此操作相同。
function a(){
// do stuff
}
a();
唯一的區別是您沒有污染全局命名空間。
$(function () {
// It will invoked after document is ready
});
一旦文件准備就緒,這個函數執行意味着整個HTML應該在執行之前加載,但在第二種情況下,函數在創建后立即調用。
(function () {
// It will invoked instantly after it is created
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.