Javascript:全局变量转到;“窗口”;或;“全球”;但全球功能却没有。全球fns走向何方?
大多数时候,可以在“全局”或“窗口”中找到全局变量 但全局函数并不存在Javascript:全局变量转到;“窗口”;或;“全球”;但全球功能却没有。全球fns走向何方?,javascript,function,global,enumeration,Javascript,Function,Global,Enumeration,大多数时候,可以在“全局”或“窗口”中找到全局变量 但全局函数并不存在 var globals = window || global hat = "fez" alert(globals["hat"]) // alert --> "fez" function test() { alert("yay") } alert(globals["test"]) // alert --> "undefined" globals["test"]() // console --&g
var globals = window || global
hat = "fez"
alert(globals["hat"]) // alert --> "fez"
function test() {
alert("yay")
}
alert(globals["test"]) // alert --> "undefined"
globals["test"]() // console --> "Uncaught TypeError: globals.test is not a function"
那么全局函数去了哪里?它们可以像全局变量一样被访问或枚举吗?您的代码在浏览器中运行良好 但是,在节点中,变量/函数不放在
全局对象上,而是放在模块范围内。看
顶层范围不是全局范围var Node.js模块中的某些内容将是该模块的本地内容
我对你在IE11和Chrome上的代码没有问题。测试函数不会返回任何东西。您正在查找globals[“test”]
而不是globals[“test”]()
。我很确定我正在查找名为test的全局函数。全局函数在哪里定义?也许您忘记了var global=this
。由于全局对象和窗口对象在浏览器中是同义的,因此编写var globals=window | | global
(即使global指的是全局对象)也没有意义。只需引用全局对象。此节点是否为?在节点中,变量/函数不放在全局
对象上,它们在模块范围内。看见顶层范围不是全局范围var Node.js模块中的某些内容将是该模块的本地内容。我收到“未定义”警报。我将尝试其他浏览器。Firefox和Chrome都为我抛出控制台错误