zoukankan      html  css  js  c++  java
  • javascript的对象创建模式---命名空间模式

    javascript中对象的概念是很普遍的,对象是是对象,数组是对象,函数也是对象,字符串其实也是对象。常见的对象创建方法有对象字面量、构造函数创建。我们先来看看对象的创建还有哪些更高级的模式。

    一、命名空间模式

    二、模块模式

    三、沙箱模式

    四、链模式

    命名空间模式

    什么是命名空间模式咧?简单的说就是为了避免出现过多的全局变量,将多个变量作为某一个全局变量的属性存在。

    比如:

    function brother1(){};
    function brother2(){};
    

    这样的两个函数直接作为了window的属性成为了全局变量,如果改成这样:

    var parent={};
    parent.brother1=function(){};
    parent.brother2=function(){};
    

    两个brother变成了一个全局变量的属性,保护了全局变量不被污染。

    命名空间模式的好处是:

    1、减少全局变量污染,只建立一个全局变量,把其他的所有功能函数、变量放到这个全局变量下,适合库的建立,比如jquery。

    2、组织代码更规范。

    当然命名空间模式也有一些缺点:

    1、更长的字符串名称,每个变量和函数都需要有一个前缀,增加了代码的大小;

    2、长嵌套意味着更长的属性解析时间。

    通用命名空间函数

    var MYAPP = MYAPP||{};
    MYAPP.namespace=function(ns){
        var parts = ns.split("."),parent=MYAPP,i;
        if(parts[0]=="MYAPP"){
            parent=parts.slice(1);    
        }
        for(i=0;i<parts.length;i++){
            if(typeof parent[parts[0]]=="undefined"){
                parent[parts[i]]={};   
            } 
            parent=parent[parts[i]];   
        }
    
    };
        
    

      

  • 相关阅读:
    bzoj1494 生成树计数 (dp+矩阵快速幂)
    hdu3516 Tree Construction (区间dp+四边形优化)
    luogu3628 特别行动队 (斜率优化dp)
    luogu3195/bzoj1010 玩具装箱(斜率优化dp)
    poj1038 Bugs Integrated,Inc. (状压dp)
    bzoj1597/luogu2900 土地购买 (斜率优化dp)
    bzoj4518/luogu4072 征途(斜率优化dp)
    pandas read_csv
    pandas series和pd.Dataframe区别
    python3 mro
  • 原文地址:https://www.cnblogs.com/fredshare/p/3221137.html
Copyright © 2011-2022 走看看