为什么Twitter将字符串传递给它的脚本加载JS片段

Why does Twitter pass strings into it's script loading JS snippet?

本文关键字:脚本 加载 JS 片段 Twitter 字符串 为什么      更新时间:2023-09-26

下面是用于向网页添加Tweet按钮的Twitter脚本加载片段。

!function(d,s,id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)){ 
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js,fjs);
  }
}(document,"script","twitter-wjs");

在最后一行,他们将"script"传递给IIFE参数,而不是仅仅将其声明为一个变量。

这样做的好处是什么?它只是为了在代码长度上节省几个字符吗?

如果他们使用IIFE之外的变量,它可能会干扰10,000个人网页上的10,000个人javascript中的变量。如果已经有一个变量的名字,他们在页面上的包含可能会干扰它的工作方式,人们会说,"我试图使用Twitter,但它破坏了我的网页。"

按照他们的方式去做,尽可能地减少对周围代码的影响。

如果他们在里面放了一个变量,那将很难记录要添加到一个已经工作的网页上的内容。他们必须教一个javascript新手如何格式化字符串变量,新用户必须在代码的两个地方输入他们的信息。

这样,他们只需要显示所有行,但最后一行为"魔术"。"把这些台词抄进去",他们说。

然后他们解释说你必须把两个东西的名字放在最后一行的引号里。这样更容易解释。

无可否认,这并不容易。但更容易解释的是,成千上万的人使用它可以增加他们的市场渗透率,可以这么说。