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;
    }();
  • 相关阅读:
    Python函数式编程(一):高级函数
    Python高级特性:列表生成式
    Python高级特性:迭代
    Python高级特性:切片
    Python学习笔记
    关于相机拍照获取图片onActivityResult返回data 为null的问题
    191019
    状语和状语从句
    191018
    191017
  • 原文地址:https://www.cnblogs.com/shytong/p/4966579.html
Copyright © 2011-2022 走看看