前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Javascript】基础-命名空间

【Javascript】基础-命名空间

原创
作者头像
林小帅
修改2019-09-05 14:28:52
6960
修改2019-09-05 14:28:52
举报
文章被收录于专栏:林小帅的专栏林小帅的专栏

Javascript 首先就不像其他语言(C#、Java、Go 等)有 Namespace 或者 Package的语法支持和管理

    当一个项目或者程序开发规模达到一定程度后(尤其是多人合作),个人习惯和命名规则没有约定的情况下就会发生命名冲突、覆盖或者变量污染的情况。

e.g

代码语言:javascript
复制
1// A: 获取时间 hh:mm:ss
2function getTime() {
3    var date = new Date()
4    return date.getHours() + ':' + date.getMinutes() + ':' + date.getMilliseconds()
5}
代码语言:javascript
复制
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,以便在函数外部调用它们。

总结:

这是经常在工作中会经常写的代码,然而在今天面试的时候并没有回答出来。

  1. 、明明经常用但不知道这是命名空间,只知道这是可以避免冲突和污染的实现方式之一(其他的还有模块、类方式)
  2. 这也证明了自己对 Javascript 的一些基础定义不够熟悉
  3. 自己的锅自己背,该看的书一本都少不了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档