(function(window,document){ const head = 1; function Person(){ // } window.Person = Person; })(window,document);
这段代码里面都是一些细节,关于如何优化代码结构和执行的代码解析的速度,对代码进行以下的几点分析:
1.首先,把定义的函数Person放在匿名函数进行自执行操作:
排除定义的全局变量head对全局作用域的变量污染,使用自执行函数将变量放在一个代码块内。
2.将定义的Person函数挂到全局对象window上,将接口暴露出去,方便在外面调用
3.传入参数window和document
如果没有传入这两个参数,那么在函数执行时要用到这两个全局对象的时候需要再向上一层进行寻找,这时候如果将全局对象作为参数传递进来,则能省去编译器向上一层查找的操作。