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都为我抛出控制台错误