【发布时间】:2013-08-01 13:12:19
【问题描述】:
我正在尝试编写一个简单的 Facebook 应用程序。在我需要的代码中,我发现了这一点:
// Load the SDK asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
为什么这个函数被包裹在()中,而(document)最后被打了? 我以前没见过这个 JavaScript 魔法。
感谢您的任何意见。
【问题讨论】:
-
这是一个以文档为参数的匿名函数
-
@koala_dev 这可能是一个答案..
-
是的,我现在看到这是一个非常相似的问题,但它的措辞很奇怪,我无法在搜索中找到该问题。
-
这是创建一个函数并立即带一个参数。那为什么起作用呢,你可能会问?不要用
var js, id ...等函数内部结构污染全局命名空间。
标签: javascript