先看下例子
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="jquery-1.10.2_d88366fd.js"></script> </head> <body> <script> $(function(){ function console1(){ console.log('js1:console1'); } }) </script> <script> $(function(){ console1(); }) </script> </body> </html>
這樣寫 console1函數無法執行報錯,說沒找到console1函數。
想了半天,原來每個$(function(){})都是一個函數,函數都有自己的作用域,匿名函數相當於私有的函數,要把匿名函數改成 全局函數就可以在下面用了。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="jquery-1.10.2_d88366fd.js"></script> </head> <body> <script> var console1; $(function(){ console1=function (){ console.log('js1:console1'); } }) </script> <script> $(function(){ console1(); }) </script> </body> </html>