模块模式——方法

var prison = (function(){
  var prisoner_name = ‘WangMing‘,
      jail_term = ‘20 year term‘;

  // 返回一个有两个方法的对象
  return {
    // 每次调用prisoner()时,会重新查找prisoner_name和jail_term
    prisoner: function () {
      return prisoner_name + ‘-‘ + jail_term;
    },
    // 每次调用setJailTerm时,会查找并设置jail_term
    setJailTerm: function ( term ) {
      jail_term = term;
    }
  };
})();

// this outputs ‘WangMing-20 year term‘
console.log( prison.prisoner() );
prison.setJailTerm( ‘Sentence commuted‘ );
// this now outputs ‘WangMing-Sentence commuted‘
console.log( prison.prisoner() );

/*
  尽管自执行匿名函数完成了执行,方法prisoner和setJailTerm仍然可以访问变量变量prisoner_name和jail_term。prisoner_name和jail_term像是prison对象的私有变量。它们只能通过匿名函数返回的对象上的方法来访问,不能在该对象或者原型上直接访问。

*/
时间: 2024-10-12 21:16:19

模块模式——方法的相关文章

递归、闭包、私有变量、特权方法、单例、模块模式(module pattern)

//使用命名函数表达式实现递归 var factorial = (function f(num) {     if (num <= 1) {         return 1;     } else {         return num * f(num - 1);     } }); //用作块级作用域(私有作用域)的匿名函数 (function(){     var now = new Date();     if (now.getMonth() == 0 && now.get

模块模式

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

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

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

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

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

(二)构造器模式与模块模式

这一篇主要讲述构造器(Constructor)模式和模块(Module)模式以及相关的变体模式,例子是JavaScript代码. 构造器(Constructor)模式 对象构造器用于创建特定类型的对象——准备好对象以备使用,同时接收构造器可以使用的参数,以在第一次创建对象时,设置成员属性和方法的值.概念并没什么好说的,这种模式最是简单,虽然名字是那么吊炸天,但内容没什么,看下面例子就可明白. 基本构造器 function Car( model, year, miles ) { this.mode

深入理解JavaScript 模块模式

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

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

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

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(模块)模式

模块是任何强大应用程序中不可或缺的一部分,它通常能帮助我们清晰地分离和组织项目中的代码单元. js中实现模块的方法: 对象字面量表示法 Module模式 AMD模块 CommonJS模块 ECMAScript Harmony 模块 对象字面量 对象字面量不需要使用new运算符进行实例化,但不能用在一个语句的开头,因为开始的可能被解读为一个块的开始,在对象的外部,新成员可以使用如下赋值语句添加到对象字面量上,myModule.property = "someValue". var myM