4

下面是用于将推文按钮添加到网页的 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 参数,而不是仅仅将其声明为变量。

这样做有什么好处?只是在代码长度上保存几个字符吗?

4

1 回答 1

-2

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

以他们的方式进行操作,尽可能减少对周围代码的影响。

里面的变量

如果他们将变量放在内部,那么记录必须添加到已经工作的网页的内容将更加困难。他们必须教一个新的 javascript 用户如何格式化字符串变量,并且新人必须在代码中的两个位置输入他们的信息。

这样,他们只需将除最后一行之外的所有行显示为“魔术”。他们说,“复制这些行”。

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

诚然,这并不容易。但是更容易解释数以千计的人使用它可以增加他们的市场渗透率,可以这么说。

于 2013-04-04T18:46:11.993 回答