zoukankan      html  css  js  c++  java
  • 如何实现javascript js 类命名空间的写法

    转载 猫猫小屋http://www.maomao365.com/?p=823

    在C#中有namespace概念,java中有package的概念,有了这些概念之后,在系统的运行时,每一个方法就会拥有唯一的访问路径
    namsepace.class.object,这样就可以避免由于object重名所导致的问题.
    由于javascript是一种解释型语言,在javascript中,如果定义两个同名函数或者变量,系统会用最后一个函数或变量来替换前一个函数和变量,
    如果是一个的单人开发的系统,则不会产生很多异常,因为可以人为的控制这些命名的唯一,如果是大型多人协同开发系统,则可能产生很多异常,增加程序的调试难度。

    举例说明命名空间必要性

    例如我们编写一个页面 引入jquery框架,然后我们在页面里面自定义一个$函数,那么$ 函数可能会失效,或者产生莫名其妙的现象

    命名空间使用

    < input type="button" value="命名空间使用" onclick="(new namespace()).$();"/>

    < script type="text/javascript">
    function namespace(){
    this.$=function(){
    alert(‘命名空间使用!’);
    }
    }
    < /script>

    这种写法,其实就是在namespace下定义了一个$

    简化每次都 new namespace
    < input type="button" value="命名空间使用" onclick="t.$();"/>

    < script type="text/javascript">
    (function namespace(){
    this.$=function(){
    alert(‘命名空间使用!’);
    }
    window.t ={};
    window.t=this;
    })();
    < /script>

    进阶篇

    在一个命名空间里面可以像 C# java一样包含很多变量和方法

    < input type="button" value="命名空间使用" onclick="t.$();"/>
    < input type="button" value="命名空间简化调用" onclick="method3();"/>
    < input type="button" value="命名空间method2使用" onclick="t.method2();"/>
    < input type="button" value="命名空间method3使用" onclick="t.method3();"/>
    < input type="button" value="命名空间a变量赋值使用" onclick="t.a=999;"/>

    < script type="text/javascript">
    (function namespace(){
    this.$=function(){
    alert(‘命名空间使用!’);
    }
    this.method2=function(){
    alert(“this method 2!”);
    }
    this.a=”888″;
    this.method3=function(){
    alert(“命名空间内部变量:a”+a);
    }

    window.t ={};
    window.t=this;
    window.t.method3=method3;
    })();
    < /script>

  • 相关阅读:
    通过Http接口及SolrNet 两种方法基于Solr5.5.1 实现CURD
    Solr5.5.1 IK中文分词配置与使用
    windows环境tomcat8配置Solr5.5.1
    初谈SQL Server逻辑读、物理读、预读
    C#6新特性,让你的代码更干净
    PJAX初体验(主要是利用HTML5 新增API pushState和replaceState+AJAX)
    js实现String.Fomat
    iOS 画虚线
    UIFont字体大全
    iOS 里RGB 配色 UIColor colorWithRed
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/4306266.html
Copyright © 2011-2022 走看看