zoukankan      html  css  js  c++  java
  • js实现私有变量

    一、块级作用域

      js中没有块级作用域的概念,可用匿名函数实现,由于匿名函数执行完一遍后,内部没有引用其变量对象的函数,其变量对象被清除,后面则引用不到其中的变量

    (function(){
    //块级作用域
    })();

    二、私有变量

    只能函数内部访问,外界无法访问

    在构造函数中定义特权方法,每次创建新对象时都会创建同样一组新方法。

    function MyObject(){
        //私有变量
        var p=10;
        function pFunction(){
            return 1;    
        }
        //用来访问私有变量的特权方法
        this.public=function(){
            p++;
            return pFunction();
        }
    }


    三、静态私有变量

    私有变量和函数又实例共享

    function(){
        var p=10;
        function pFunction(){
            return 1;
        }
        //构造函数    
        MyObject=function(){
        };
        //公有方法    
        MyObject.prototype.public=function(){
            p++;
            return pFunction();
        }
    })();

    四、模块模式

    为单例(只有一个实例的对象)创建私有变量和方法。

    var singleton=function(){
        var p=10;
        function pFunction(){
            return 1;
        }
        
        return{
            pubMethod:function(){
                p++;
                return pFunction();
            }
        }
    }();


    五、模块加强模式

    可以控制单例是什么类型对象

    var singleton=function(){
        var p=10;
        function pFunction(){
            return 1;
        }
        
        var obj=new customer();
    
        obj.pubMethod=function(){
            ...
        }
    
        return obj;
    }();
  • 相关阅读:
    CMU Database Systems
    Calcite分析
    CMU Database Systems
    CMU Advanced DB System
    笔记
    MyBatis Generator中文文档
    Run Test Case on Spark
    Flex报错Error #2048: 安全沙箱冲突
    看看这个超级有用的一种类型——匿名类型
    Java实战_手把手编写记事本
  • 原文地址:https://www.cnblogs.com/shytong/p/4966579.html
Copyright © 2011-2022 走看看