鱼C论坛

 找回密码
 立即注册
查看: 2864|回复: 3

[已解决]对于模块间依赖性的强弱判断有疑惑

[复制链接]
发表于 2023-3-7 14:58:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬们,我想问一下,在看webpack的时候看到一句话,说是模块与模块间并没有依赖性,这是一个弊端。可是模块间依赖性小不是好事吗?求解。
最佳答案
2023-3-7 15:18:40
模块间依赖性小确实是好事,但是你可能理解错了他所说的“模块与模块之间并没有依赖关系”,

比如你要使用 http 模块创建一个服务就会用到:
const http = require('http')
const server = http.createServer()

这里可以明确看出当前模块是依赖于 http模块的,

而要创建一个服务就通过 http 来去调用 createServer,即 http.createServer()

这种方式不会去污染当前的全局命名空间,要使用到 http 的函数都去通过 http 来调用,



而通过 script 标签将 http 引入的话(<script src="http.js"></script>)

这种方式会将 http 的所有函数都直接引入到当前命名空间,也就是直接调用 createServer 就可以了,不需要用 http.createServer

而这样做的弊端就是如果当前命名空间也定义了一个函数叫 createServer 的话则会被相互覆盖,

而你的图片里面说的没有依赖关系就是直接将 js 文件引入当前命名空间而不是通过 require 引入
QQ图片20230307145615.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-7 15:18:40 | 显示全部楼层    本楼为最佳答案   
模块间依赖性小确实是好事,但是你可能理解错了他所说的“模块与模块之间并没有依赖关系”,

比如你要使用 http 模块创建一个服务就会用到:
const http = require('http')
const server = http.createServer()

这里可以明确看出当前模块是依赖于 http模块的,

而要创建一个服务就通过 http 来去调用 createServer,即 http.createServer()

这种方式不会去污染当前的全局命名空间,要使用到 http 的函数都去通过 http 来调用,



而通过 script 标签将 http 引入的话(<script src="http.js"></script>)

这种方式会将 http 的所有函数都直接引入到当前命名空间,也就是直接调用 createServer 就可以了,不需要用 http.createServer

而这样做的弊端就是如果当前命名空间也定义了一个函数叫 createServer 的话则会被相互覆盖,

而你的图片里面说的没有依赖关系就是直接将 js 文件引入当前命名空间而不是通过 require 引入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-7 16:59:55 | 显示全部楼层
isdkz 发表于 2023-3-7 15:18
模块间依赖性小确实是好事,但是你可能理解错了他所说的“模块与模块之间并没有依赖关系”,

比如你要使 ...

那单独理解“模块与模块之间没有依赖关系”这句话,是正确的吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-7 17:04:19 | 显示全部楼层
害羞的新手 发表于 2023-3-7 16:59
那单独理解“模块与模块之间没有依赖关系”这句话,是正确的吧。

通过 script 标签引入确实是没有依赖关系,但是它跟把所有代码写在一个文件没有什么区别了,

所以模块跟模块或多或少都应该是要有依赖的,也就是不能多,也不能没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表