我正在阅读 David Mark 关于 js 框架“Sencha”的以下分析:https ://gist.github.com/3279190并在那里他说......
他们想要的是一个全局变量,但他们最终得到的是全局对象的一个属性。根据规范和(和实施历史),两者之间有足够的差异,需要注意不要混淆它们(就像这里所做的那样)。
var my_global = 123;
...但是据我所知,和(在浏览器环境中)之间没有任何区别window.my_global = 123;
(在该示例中,我假设环境是浏览器-因此使用,但显然window
我可以使用this.my_global
全局对象在不同环境中运行时会有所不同)。
但是忽略这个微小的差异,将属性分配给全局对象和创建全局变量之间有区别吗?我没想到,创建全局变量只是将属性分配给全局对象的另一种方式。
我相信某些浏览器中可能存在问题,如果它们有一个 id 为“my_global”的元素,那么显然这可能会导致 JavaScript 引用正确的东西出现问题,但我不确定如何/是什么导致该问题(例如将属性分配给全局对象会导致元素 id 问题发生,还是声明了导致元素 id 问题的全局变量?)
有人可以为我澄清一下吗?