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);
    }
    

     输出

  • 相关阅读:
    GIT的使用
    工具函数:cookie的添加、获取、删除
    技术分布特点:枣核型与网状结构
    js基础知识:表达式
    js基础知识:变量
    解决ie8(及其以下)不支持getElementsByClassName的问题
    毕设进度(10.29)
    毕设进度(10.28)
    毕设进度(10.27)
    毕设进度(10.26)
  • 原文地址:https://www.cnblogs.com/anxiaoyu/p/6593256.html
Copyright © 2011-2022 走看看