javascript 通过模块模式实现代码访问控制

<script type="text/javascript">
    // 在匿名函数中使用var关键字
    (function(){
        var privateField = 42;
        function innerFunc(){
            notSoPrivate =43;
            return notSoPrivate;
        }
        alert(privateField); // 42
        privateField = innerFunc(); //
        alert(notSoPrivate); // 43

    })();
    alert(typeof privateField); // undefined
    alert(notSoPrivate);        // 43 变量泄露
</script>

 

上面使用var 防止变量泄露

私有属性

var obj =(function (){
    var privateField = 42;
    var publicField = "foobar";
    function processInternals(){
         alert(‘Internal stuff : ‘ + privateField);
    }
    function run(){
        processInternals();
        alert(‘still private stuff : ‘ + privateField);
        alert(‘Public stuff : ‘ + publicField);
    }
    return {
        publicField : publicField,
        run : run
    };
})();
obj.run(); // 弹出 internal, still private, pupublic
alert(obj.publicField); // foobar
alert(obj.processInternals()); // Undefined
alert(obj.privateField); // undefined

时间: 2024-11-04 11:12:59

javascript 通过模块模式实现代码访问控制的相关文章

JavaScript基础对象创建模式之模块模式(Module Pattern)(025)

模块模式可以提供软件架构,为不断增长的代码提供组织形式.JavaScript没有提供package的语言表示,但我们可以通过模块模式来分解并组织 代码块,这些黑盒的代码块内的功能可以根据不断变化的软件需求而不断的被添加,替代和删除.模块模式由几种我们已经介绍过的模式共同组成: 命名空间模式 即时函数模式 私有成员与访问控制方法模式 依赖声明模式 模块模式的第一步是建立一个命名空间.首先我们用先前介绍的namespace()方法创建一个工具模块例子,这个例子模块提供一些数组功能: MYAPP.na

深入理解JavaScript 模块模式

模块模式是JavaScript一种常用的编码模式.这是一般的理解,但也有一些高级应用没有得到很多关注.在本文中,我将回顾基础知识,浏览一些不错的高级技巧,甚至我认为是原生基础的. 基础知识 首先我们开始简单概述模型模式.三年前Eric Miraglia(YUI)的博文使模型模式众所周知.如果你已经很熟悉模型模式,可以直接阅读“高级模式”. 匿名闭包 这是一切成为可能的基础,也是JavaScript最好的特性.我们将简单的创建匿名函数,并立即执行.所有函数内部代码都在闭包(closure)内.它提

深入理解JavaScript&#160;模块模式

模块模式是JavaScript一种常用的编码模式.这是一般的理解,但也有一些高级应用 没有得到很多关注.在本文中,我将回顾基础知识,浏览一些不错的高级技巧,甚至我认为是原生基础的. 基础知识首先我们开始简单概述模型模式.三年前Eric Miraglia(YUI)的博文使模型模式众所周知.如果你已经很熟悉模型模式,可以直接阅读“高级模式”.匿名闭包这是一切成为可能的基础,也是JavaScript最好的特性.我们将简单的创建匿名函数,并立即执行.所有函数内部代码都在闭包(closure)内.它提供了

(转)深入理解JavaScript 模块模式

深入理解JavaScript 模块模式 (原文)http://www.cnblogs.com/starweb/archive/2013/02/17/2914023.html 英文:http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth 模块模式是JavaScript一种常用的编码模式.这是一般的理解,但也有一些高级应用没有得到很多关注.在本文中,我将回顾基础知识,浏览一些不错的高级技巧,甚至我认为是原生基础的

javascript模块模式

目前模块模式得到了广泛应用,因为它提供了结构化的思想并且有助于组织日益增长的代码.模块模式提供了一种创建自包含非耦合代码片段有利工具,可以将它视为黑盒功能.板栗: var array = (function(){ //私有变量 var array_string = '[object Array]', ops = Object.prototype.toString; //公开 API return { isArray : function(a){ return ops.call(a) === ar

.NET应用架构设计—表模块模式与事务脚本模式的代码编写

阅读目录: 1.背景介绍 2.简单介绍表模块模式.事务脚本模式 3.正确的编写表模块模式.事务脚本模式的代码 4.总结 1.背景介绍 要想正确的设计系统架构就必须能正确的搞懂每个架构模式的用意,而不是胡子眉毛一把抓.现在有一个现象是什么呢,项目的结构从表面上看是很不错,层分的很合理,其实对业务系统来说也就那么几种层设计方法,但是现在很多项目的逻辑架构的设计不是理想,有很多概念大家并不是很了解,当然也许每个人对技术的追求不同罢了.不管你追求不追求,事实我们还是要去往正确的方向努力才对的. 很多人包

【javascript设计模式】构造器模式、模块模式、单例模式

构造器模式(Constructor) 构造器模式是学习js最早接触的一种,实现主要如下: 1 function myObject(name){ 2 this.name = name; 3 } 4 5 myObect.propotype = function sayName(){ 6 alert(this.name); 7 } 使用的时候需要new一个对象. 1 var myObj = new myObject('hello'); 2 myObj.sayName(); 模块模式(Module) 模

Javascript百学不厌 - 模块模式

记录自己觉得重要又可能忘记的东西 用模块模式产生安全的对象: var serial_maker = function () { var preifx = ''; var seq = 0; return { set_prefix: function (p) { preifx = String(p); }, set_seq: function (s) { seq = s; }, gensym: function () { var result = preifx + seq; seq++; retur

模块模式

模块模式: 在 JavaScript 中,Module模块用于模拟类的概念,使一个单独的对象拥有共有/私有方法和变量,从而屏蔽来自全局作用域的特殊部分.(产生的结果是:函数名与在页面上其他脚步定义的函数冲突的可能性降低) 涉及: 对象字面量: 闭包: 作用域. 实现的方法: 对象字面量表示法: Module 模式: AMD 模式: CommonJS 模式: ECMAScript Harmony 模块. 优点: 提供一个包装混合公有/私有方法和变量的方式,防止其泄露至全局作用域,与其他接口发生冲突