2014-10-03 3 views
0

Почему этот код запускается автоматически при загрузке страницы? Я не вижу никаких функций, вызывающих вызов.Почему этот код Javascript запускается автоматически?

function fbAsyncInit() { 
    FB.init({ 
     appId: '', 
     xfbml: true, 
     version: 'v2.1' 
    }); 

    FB.login(function() { 
     FB.api('/me/feed', 'post', { 
      message: 'This is a test message.' 
     }); 
    }, { 
     scope: 'publish_actions' 
    }); 
}; 


(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) { 
     return; 
    } 
    js = d.createElement(s); 
    js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
+1

'функция (d, s, идентификатор)' является self, вызывается с помощью '(document, 'script', 'facebook-jssdk')' – stewe

+0

Если вы сортируете форматирование и отступы кода, то ясно, что IIFE находится внизу - вне fbAsyncInit() – Moob

ответ

1

это ваша собственная личность ссылающееся функция:

(function(d, s, id) { 
       var js, fjs = d.getElementsByTagName(s)[0]; 
       if (d.getElementById(id)) { 
        return; 
       } 
       js = d.createElement(s); 
       js.id = id; 
       js.src = "//connect.facebook.net/en_US/sdk.js"; 
       fjs.parentNode.insertBefore(js, fjs); 
      }(document, 'script', 'facebook-jssdk')); 

простая функция самостоятельной ссылающееся выглядит так, и она работает сразу:

(function(){ 
// some code… 
})(); 
Смежные вопросы