Javascript 首先就不像其他语言(C#、Java、Go 等)有 Namespace 或者 Package的语法支持和管理
当一个项目或者程序开发规模达到一定程度后(尤其是多人合作),个人习惯和命名规则没有约定的情况下就会发生命名冲突、覆盖或者变量污染的情况。
e.g
1// A: 获取时间 hh:mm:ss
2function getTime() {
3 var date = new Date()
4 return date.getHours() + ':' + date.getMinutes() + ':' + date.getMilliseconds()
5}
1// B: 获取时间 hh:mm
2function getTime() {
3 var date = new Date()
4 return date.getHours() + ':' + date.getMinutes()
5}
如果在引用时A优先于B引用那么 B写的函数就会覆盖A写的函数,反之A覆盖B写的函数
这时候就产生了覆盖,甚至可能让相关调用的代码无法运行并且报错
由于 Javascript 中没有这样的概念,但是可以通过用一个变量来定义一个函数库、一组相关的、一些待执行的或一些公共部分的代码。
其目标是指在大规模程序开发中或多人协作、合作开发中,避免因个人习惯或命名规则没有约定而导致的命名冲突、覆盖或者变量污染的情况,并且能让代码在与其他引用的第三方库或框架中正常执行。
e.g
声明 jQyuery 函数
jQuey 就使用了将代码封装在 jQuery 和 $ 符号函数中,然后将这个函数导出到 window,以便在函数外部调用它们。
总结:
这是经常在工作中会经常写的代码,然而在今天面试的时候并没有回答出来。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。