这是一种微小的优化,实际上完全浪费时间,但值得一提的是,常见的惯用语是像这样编写JavaScript:
(function(window, undefined) {
// your code, thousands of lines of sheer beauty
})(this);
var undefined = void 0
来设置 undefined,这在其他开发人员可能调用使用未设置参数的函数时非常有用。如果该开发人员意外地设置了参数,则可能会导致问题。 - Andy E虽然这只是微小的优化,但直接属性引用总是比变量查找快。当你写location
时,会执行以下操作:
location
,如果找到则返回并退出。location
,如果找到则返回,否则抛出未声明变量错误。类似的情况是使用with
语句创建对象属性作用域。对于self
,它也是window
的属性。 self
是对window
的引用,因此window.location
应该比window.self.location
更快。还要记住,实现可能不同,因此在不同的浏览器中可能会有所不同。