为什么这个Javascript代码会自动运行?

时间:2014-10-03 19:32:28

标签: javascript facebook

为什么此代码会在页面加载时自动运行?我没有看到任何自我调用函数。

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 个答案:

答案 0 :(得分: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…
})();