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;
    }();
  • 相关阅读:
    Java数组的内存结构
    2014.11.9--最近的小感悟
    十一两天感悟
    Are you happiness
    Are you busy?
    Lesson 81-82 Are they true
    Lesson 79-80 People are getting sick
    Lesson 77-78 Socially Discriminated Against
    Lesson 75-76 Shopping on the web
    更新单点,求区间—— luogu 3374
  • 原文地址:https://www.cnblogs.com/shytong/p/4966579.html
Copyright © 2011-2022 走看看