全局命名空间和模块
全局命名空间
库通常会在全局作用域中声明一个名字独特的变量,通常是一个对象。这个对象被用作库的命名空间,所有需要暴露给外界的功能都会成为这个对象(命名空间)的属性,而不是将自己的标识符暴漏在顶级的词法作用域中。
例如:
var mylibrary = {
name: 'haha',
eat: (name) => {
console.log(`${name} is eating`);
}
};
模块管理
通过依赖管理器的机制将库的标识符显式地导入到另外一个特定的作用域中。
用作用域的规则,强制所有标识符都不能注入到共享作用域中,而是保持在私有、无冲突的作用域中,这样可以有效规避掉所有的意外冲突。
The MIT License (MIT)
Copyright (c) 2019, Roojay.
本文链接:https://roojay.com/pages/f9a582e/