2011-06-25 52 views
3

我在阅读facebook javascript SDK,当我看到以下我不明白的语法: (function(){...}()); 有谁知道它是做什么的?它是做什么的? (功能(){...}());

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({appId: 'your app id', status: true, cookie: true, 
      xfbml: true}); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
+1

可能重复的[javascript函数与(function(){...}());](http://stackoverflow.com/questions/4806150/javascript-function-vs-function) –

回答

11

它是一个匿名函数,它在声明后立即被调用。它用于创建局部变量而不会破坏全局范围。变量e将不可见,也不可访问的功能块外

+0

这很合理!谢谢。 – AlexStack

+0

为什么..敢问我..我们不想让'e'变得可见或可访问吗?它有点像 - 如果一棵树落在树林里... ...? –