我试图通过对控制台和plunker的实验来了解隐含全局变量是如何工作的。
我正在创建一个自调用函数
(function () {
toto = 1;
})();
根据我正在读的书,
隐含全局在技术上不是真实变量,但是它们是全局对象的属性。
我试着看看在这个函数调用之后,我是否可以将toto作为全局对象的属性来访问,在浏览器中,全局对象是window
。
当我使用hasOwnProperty('toto')
时,(通过直接在控制台中键入)我会得到false。我想我会使用in
,事实上,toto是"在"窗口中(所以,它不在窗口本身中,而是在它的子对象中)
你能放些光吗?知道如何使用Chrome Web工具来检查在任何给定时间声明的所有变量的状态吗?
您可能正在从控制台运行hasOwnProperty,并且您选择了错误的框架。
我在组成plunker网站的所有帧中运行了hasOwnProperty命令,我得到了true和false+在一些帧中,toto甚至没有初始化(ReferenceError:toto没有定义)。