命名空间

一时失言乱红尘 2022-05-26 05:11 313阅读 0赞

Javascript命名空间

Javascript命名空间


在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,例如:

  1. var sayHello = function() {
  2. return 'Hello var';
  3. };
  4. function sayHello(name) {
  5. return 'Hello function';
  6. };
  7. sayHello();

最终输出为

  1. Hello var

避免全局变量名冲突的最好办法还是创建命名空间。


命名空间作用:

管理变量,防止污染全局,适用于模块化开发。

1.通过对象(Object)创建。

  1. <script type="text/javascript">
  2. var test = {
  3. mike : {
  4. father : {},
  5. sister : {
  6. name : 'cite',
  7. },
  8. },
  9. max : {
  10. father : {},
  11. son : {
  12. lastName : 'bai',
  13. }
  14. }
  15. }
  16. </script>

比如要调用一个test里面的mike里面的sister的name

  1. console.log(test.mike.sister.name)

简化一下可以这么写

  1. var name = test.mike.sister.name;
  2. console.log(name);

不过这样的话就失去了创建命名空间的意义。

这种使用对象来实现命名空间的方法不常用。


2.通过闭包(Closure)和Object实现

  1. <script type="text/javascript">
  2. var init = (function () {
  3. var name = '墨小白';
  4. function test() {
  5. console.log(name);
  6. }
  7. return function () {
  8. test();
  9. }//通过return保存到外部形成闭包.
  10. }());
  11. init();//输出墨小白
  12. </script>

这种方法

把在全局要使用的功能,放在了一个局部里,互不污染,是最常用的。

发表评论

表情:
评论列表 (有 0 条评论,313人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++命名空间

    概述       在C语言中程序的全局变量作用域只有一个,所有的全局标识符都共享同一个作用域,在多人开发的时候,容易造成标识符冲突。C++为了解决这个问题提出了命名空间这

    相关 命名空间

    一、为什么使用命名空间 一个大型的工程往往是由若干个人独立完成的,不同的人分别完成不同的部分,最后再组合成一个完整的程序。由于各个头文件是由不同的人设计的,有可能在不同的头

    相关 C++命名空间

    本讲基本要求      \ 掌握:命名空间的作用及定义;如何使用命名空间。      \ 了解:使用早期的函数库  重点、难点      ◆命名空间的作用及定义;

    相关 php命名空间

    php命名空间在php5.3.0中引入,是一个很重要的工具,其作用是按照一种虚拟的层次结构组织php代码,这种层次结构类似操作系统的文件系统目录结构。 命名空间声明语句应该放

    相关 命名空间

    命名空间是 Linux 内核一个强大的特性。每个容器都有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。

    相关 内核命名空间

    Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 docker run 启动一个容器时,在后台 Docker 为容器创建了一个独立的命名空间和控制...