• 技术文章 >web前端 >js教程

    JavaScript创建命名空间的多种玩法

    逆旅行人逆旅行人2021-04-02 09:45:46原创75

    2021040209194670972.jpg

    JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,所以为了避免全局变量名冲突,创建命名空间成为最优解。

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

    在闭包中声明好所有变量和方法,并通过一个JSON Object返回公有接口:

    var NameSpace = NameSpace || {};
     NameSpace.Hello = (function() {   
     //待返回的公有对象  
      var self = {};   
      //私有变量或方法   
      var name = 'world';  
       //公有方法或变量   
       self.sayHello = function(_name) {    
        return 'Hello ' + (_name || name);  
         } ;   
         //返回的公有对象   
         return self; 
    }());

    2.通过JSON对象创建Object,代码如下:

    var NameSpace = NameSpace || {}; 
    NameSpace.Hello = {     name: 'world'   , sayHello: function(_name) {   
      return 'Hello ' + (_name || this.name);  
       }
     };

    3.通过函数(function)创建:(较为复杂)

    这是一种比较常见的写法,通过声明一个function实现,函数里设置初始变量,公共方法写入prototype,如:

    var NameSpace = NameSpace || {}; 
    /* Function */ 
    NameSpace.Hello = function() {   
        this.name = 'world'; 
    }; 
    NameSpace.Hello.prototype.sayHello = function(_name) {   
        return 'Hello ' + (_name || this.name); 
    }; 
    var hello = new NameSpace.Hello(); 
    hello.sayHello();

    4.通过函数(function)创建:(较为简洁)

    var NameSpace = NameSpace || {}; 
    NameSpace.Hello = new function() {   
        var self = this;   
        var name = 'world';   
        self.sayHello = function(_name) {    
         return 'Hello ' + (_name || name);  
          }; 
     };

    推荐:《2021年js面试题及答案(大汇总)

    以上就是JavaScript创建命名空间的多种玩法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:JavaScript 命名空间
    上一篇:javascript如何截取字符串 下一篇:JavaScript判断一个对象是否为数组的几种方法(总结)
    第15期线上培训班

    相关文章推荐

    • js命名空间写法示例_javascript技巧• JS命名空间的另一种实现_javascript技巧• js命名空间写法示例代码

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网