Facebook 的 JS SDK 最近开始使用更新的 ES5 Javascript 方法,例如Object.keys()
和[].map()
. 它们仍然通过具有ES5()
接受原始对象、所需方法的名称和任何参数的函数来支持旧浏览器。然后,如果本机方法不可用,它会运行本机方法或等效的 JS 方法。例如:
ES5(g.api.whitelist, 'forEach', true, function(ca) {
s[ca] = 1;
});
或对于顶级对象,
ES5('JSON', 'parse', false, r.responseText);
我怀疑这是预处理器的结果,而 FB 的开发人员实际上正在编写更多类似于以下内容的内容
g.api.whitelist.forEach(function(ca) {
s[ca] = 1;
});
和
JSON.parse(r.responseText);
(大概也有更长的变量名)
现在,假设我是对的,有一个预处理器,ES5() 函数和相关的预处理是一个开源项目还是内部的东西?如果它是内部的,FB 的任何人都可以评论开源它的可能性吗?这是我发现非常有用的东西。