2011-06-25 51 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'變得可見或可訪問嗎?它有點像 - 如果一棵樹落在樹林裏... ...? –