静态成员是直接通过类对象访问的

var Book=(function(){
var numOfBooks=0;
function checkIsbn(isbn){
...
}
return function(newIsbn,newTitle,newAuthor){
var isbn,title,author;
this.getIsbn=function(){
return isbn;
};
this.setIsbn=function(newIsbn){
if(!checkIsbn(newIsbn)) throw new Error('ISBN不合法');
isbn=newIsbn;
};
this.getTitle=function(){
return title;
};
this.setTitle=function(newTitle){
title=newTitle||'无标题';
};
this.getAuthor=function(){
return author;
};
this.setAuthor=function(newAuthor){
author=newAuthor||'无作者';
};
numOfBooks++;
if(numOfBooks>50) throw new Error('只能创建50个实例');
this.setIsbn(newIsbn);
this.setTitle(newTitle);
this.setAuthor(newAuthor); }
})();
Book.convertToTitleCase=function(inputString){
...
};
Book.prototype={
display:function(){
...
}
};

静态特权方法(模仿常量)

//Class.getUPPER_BOUND();
var Class=(function(){
var UPPER_BOUND=100;
var ctor=function(constructorArgument){
...
};
ctor.getUPPER_BOUND=function(){
return UPPER_BOUND;
};
...
return ctor;
})();

通用的取值器方法

//Class.getConstant('UPPER_BOUND');
var Class=(function(){
var constants={
UPPER_BOUND:100,
LOWER_BOUND:-100
};
var ctor=function(constructorArgument){
...
};
ctor.getConstant=function(name){
return constants[name];
};
...
return ctor;
})();

原型链

function Author(name,books){
Person.call(this,name);
this.books=books;
}
Author.prototype=new Person();
Author.prototype.constructor=Author;
Author.prototype.getBooks = function() {
return this.books;
};

javascript设计模式4的更多相关文章

  1. 《JavaScript设计模式 张》整理

    最近在研读另外一本关于设计模式的书<JavaScript设计模式>,这本书中描述了更多的设计模式. 一.创建型设计模式 包括简单工厂.工厂方法.抽象工厂.建造者.原型和单例模式. 1)简单 ...

  2. 《JavaScript设计模式与开发实践》整理

    最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ...

  3. Javascript设计模式学习一

    学习Javascript设计模式之前,需要先了解一些相关知识,面向对象的基础知识.this等重要概念,以及掌握一些函数式编程的技巧. Js多态 多态的思想:实际上是把“做什么”和“谁去做”分离开来.例 ...

  4. javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件(三)

    在上一篇<javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)>里,通过采用模板方法模式完成了切换效果对象的构建编写. 接下来就是完成各效果对象的调 ...

  5. javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)

    在上一篇<javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)>里,通过采用迭代器模式完成了各初始化函数的定义和调用. 接下来就要完成各个切换效果的编 ...

  6. javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)

    类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些. 比较常用之一的就是窗帘切换了. ...

  7. 常用的Javascript设计模式

    <parctical common lisp>的作者曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型 ...

  8. Javascript设计模式(摘译)

    说明: 未完成...更新中.... 一.javascipt设计模式分类 设计模式分类有很多标准,最流行的三种如下 1)  creational  --  主要关注对象创建 Creational des ...

  9. JavaScript设计模式学习笔记

    1 JavaScript设计模式深入分析 私有属性和方法:函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量. 特权属性和方法:创建属 ...

  10. JavaScript设计模式:读书笔记(未完)

    该篇随我读书的进度持续更新阅读书目:<JavaScript设计模式> 2016/3/30 2016/3/31 2016/4/8 2016/3/30: 模式是一种可复用的解决方案,可用于解决 ...

随机推荐

  1. 【概率】COGS 1487:麻球繁衍

    Description 万有引力定律: “使物体相互靠近的力的大小与物体的质量成正比——而物体的质量又由同一种力决定.这是一个有趣并且有益的例子,说明了科学是如何用A证明B,再用B证明A的.”——安布 ...

  2. chardet安装

    1.下载 chardet-2.2.1.tar.gz (md5)   https://pypi.python.org/pypi/chardet#downloads 2.解压至C:\Python27\Li ...

  3. DJANGO技巧两则:模拟MKDIR -P及配合NGINX上传大文件不使超时

    这都是在开发当哪遇到的问题,网上转转,作个记录: http://blog.chinaunix.net/uid-25525723-id-1596574.html http://bookshadow.co ...

  4. MyBatis-Spring 执行SQL语句的流程

    1. 从SqlSessionDaoSupport开始 通常我们使用MyBatis会让自己的DAO继承SqlSessionDaoSupport,那么SqlSessionDaoSupport是如何运作的呢 ...

  5. JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...

  6. HeadFirst设计模式之装饰者模式

    一. 1.The Decorator Pattern attaches additional responsibilities to an object dynamically.Decorators ...

  7. 关于结构体的PPT

    http://wenku.baidu.com/link?url=bd75dv-I7pCuw9M7W8iFqu6jti6XPdUqVYDC1sXegmMpaacY7TPo-P9Vx38b8zBLj6Nd ...

  8. (从终端看linux-1)linux tty pty pts 概念 区别

    基本概念: 1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东 ...

  9. visio2010去除直线交叉处的跨线

    设计(最上方)->连接线(最右侧)->显示跨线(取消打钩)

  10. 在Ubuntu 12.04安装和设置Samba实现网上邻居共享

    转载:http://www.startos.com/ubuntu/tips/2012031333097.html          有微小改动. Samba 是一款功能强大的共享工具,可以实现与win ...