zoukankan      html  css  js  c++  java
  • JS命名空间的使用

    在多人合作写脚本的时候,会发生方法名冲突的情况

    用JS的命名空间能解决这个问题

    var MYNAMESPACE = MYNAMESPACE || {};
    

     若全局空间中已有同名对象,则不覆盖该对象;否则创建一个新的命名空间。

    下面就列出一个例子

    var MYNAMESPACE = MYNAMESPACE || {};
    
    MYNAMESPACE.person = function(name) {
        this.name = name;
    };
    
    MYNAMESPACE.person.prototype.getName = function() {
        return this.name;
    };
    
    // 使用方法
    var p = new MYNAMESPACE.person("doc");
    p.getName();        // doc
    

     上面的例子是别人博客的,下面写一个自己自己写的

    有两个人同时写一个页面,一个是DOC,一个ZXD,同时命名了一个hello方法

    全局变量里也有一个hello方法

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>命名空间的用法</title>
        <script src="1.js"></script>
        <script src="2.js"></script>
        <script src="3.js"></script>
    </head>
    <body>
        
    </body>
    <script type="text/javascript">
        hello();
        DOC.hello();
        ZXD.hello();
        ZXD.getName("ZXD");
    </script>
    </html>
    

     1.js

    function hello(){
        console.log(1);
    }
    

     2.js

    var DOC = DOC || {};
    
    DOC.hello = function() {
        console.log("hello DOC");
    }
    

     3.js

    var ZXD = ZXD || {};
    
    ZXD.hello = function() {
        console.log("hello ZXD");
    }
    ZXD.getName=function(name){
        console.log(name);
    }
    

     输出

  • 相关阅读:
    并发编程---守护进程
    并发编程---Process对象的其他属性或方法
    并发编程---开启进程方式---查看进程pid
    并发编程---操作系统
    ie浏览器的css bug
    链接内的图片与文字如何对齐?
    inline元素特性
    最大流EK算法模板
    数据结构 链式表
    运算表达式 栈应用
  • 原文地址:https://www.cnblogs.com/anxiaoyu/p/6593256.html
Copyright © 2011-2022 走看看