我正在查看Twitter的嵌入式代码并看到它们正在使用!function.虽然我知道这个评估是错误的,但我想知道它的重点是什么.
这是我所指的代码:
!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");
Run Code Online (Sandbox Code Playgroud)
这是保存一个字节.这是调用函数的最短方法.替代方案可能是:
(function(){...})();
Run Code Online (Sandbox Code Playgroud)
请注意Twitter使用的语法:
!function(){...}(params);
Run Code Online (Sandbox Code Playgroud)
这意味着他们减少了调用函数一个字节的长度.
编辑:只是一个想法:它也很清楚你正在调用匿名函数.