定义全局函数需挂载到全局对象,浏览器中为window,Node.js中为global;2. 可在全局作用域声明、通过window或global显式赋值,或隐式创建(不推荐);3. 全局函数可在任意位置调用,跨文件共享;4. 应减少全局污染,推荐模块化封装。
在JavaScript中,全局函数是指可以在代码任何位置被访问和调用的函数。要定义一个全局函数,关键在于让它挂载到全局对象上。在浏览器环境中,这个全局对象是window;在Node.js中则是global。
有几种方式可以创建全局函数:
window(浏览器)或global(Node.js)对象的属性。var、let、const声明而直接赋值的函数变量也会成为全局函数。全局函数的特点就是其可访问性广泛:
window.函数名()的方式显式调用(浏览器环境)。虽然全局函数使用方便,但过度使用会导致命名冲突和维护困难:
"use strict")下,隐式全局声明会报错,有助于防止意外的全局污染。基本上就这些。只要理解了作用域和全局对象的关系,全局函数的定义和使用就不复杂,但也容易忽略其带来的副作用。合理规划函数的作用范围,才能写出更健壮的JavaScript代码。