Javascript是越来越厉害了,一统前后端开发.于是最近把设计模式又看了一遍,顺便做了个笔记,以方便自己和他人共同学习. 笔记连载详见:http://www.meteorcn.net/wordpress/2015/07/17/笔记-javascript设计模式-目录/ 笔记 Javascript设计模式 目录 综述: 1. Javascript设计模式本身没有什么技术含量,无非是用动态特性存取现有功能而已 2. 技术基础就是面向对象的实现与理解 3. 绝大多数模式是按功能区分的,明白了Jav…
前面一篇讲了js设计模式的前奏,包括接口的讲解.. 三:封装和信息隐藏: 信息隐藏用来进行解耦,定义一些私有的数据和方法. 封装是用来实现信息隐藏的技术,通过闭包实现私有数据的定义和使用. 接口在这其中扮演的角色是:提供一份记载着可公众访问的方法的契约,它定义了两个对象间可以具有的关系. 接下来介绍一下创建对象的基本模式: 基本模式有3种:门户大开型.用下划线表示方法和属性的私用性.闭包创建私用成员 举个例子,你要创建一个Book类,别人会创建实例并使用. //Book(isbn,title,a…
本文是我翻译<JavaScript Concurrency>书籍的第三章 使用Promises实现同步,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践. 完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. Promises几年前就在JavaS…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第三章:变换 学习目标 理解如何用矩阵表示线性变换和仿射变换: 学习在坐标系中缩放,旋转和移动几何体: 学习利用矩阵的乘法合并几个变换矩阵: 学习如何在坐标系之间转换,并且表示为转换矩阵:斜体样式 学习如何利用DirectX Math库提供的方法构造转换矩阵. 1 线性转换 1.1 线性转换的定义 现在有方程τ(v)=τ(x,y,z)=τ(x1,y1,z1)τ(v)…
<JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子: function sayHi(name, message){ alert("hello," +name + message); } 函数中可以使用return语句指定返回值,如果只有“return;”,则函数在停止执行后,将返回undefined; 定义的函数有2个参数,那么调用这个函…
什么是对象的数据属性?什么是对象的访问器属性?[put]方法是默认创建数据属性的,访 问器属性不包含值而是定义了一个单属性被读取时调用的函数(getter)和当一个属性被写入时 调用的函数(setter).访问器属性仅需要getter或setter中的任意一个,当然也可以两者都有. 关于javascript面向对象精要第三章对象整理如下…
1. 封装与 信息隐藏之间的关系 实质是同一个概念的两种表达,信息隐藏式目的,二封装是借以达到目的的技术方法.封装是对象内部的数据表现形式和实现细节,要想访问封装过额对象中的数据,只有使用自己定义的操作方法.通过封装可以强制实施信息的隐藏. 2. 重新认识创建对象的基本方式 01.用一个函数来做构造器 var Book = function (isbn, title, author){ if(isbn == undefined) throw new Error ('构造器需要一个 isbn');…
封装.信息隐藏与接口的关系 信息隐藏是目的,封装是手段. 接口提供了一份记载着可供公共访问的方法的契约.它定义了两个对象间可以具有的关系.只要接口不变,这个关系的双方都是可以替换的. 一个理想的软件系统应该为所有类定义接口. 创建对象的基本模式 1.门户大开型 var Publication = new Interface('Publication', ['getIsbn', 'setIsbn',...]); //接口 var Book = function(isbn, title, autho…
第三章 创建对象的基本模式 方法一:门户大开型 var Book = function(isbn, title, author) {   if(isbn == undefined ) throw new Error ('Book constructor requires an isbn.');   this.isbn = isbn;   this.title = title || 'No title specified';   this.author = author || 'No author…
第三章: 1.js的对象分为三种:①用户自定义对象 ② 内建对象(js提供的对象) ③宿主对象(js寄宿的环境-浏览器,提供的对象) 2.文档是由节点组成的集合,即dom树,html元素是根元素,是唯一一个没有被其它元素包含的元素. 3.元素节点并非直接包含文本节点,例如:<ul><li>你好</li><ul>    ul元素并没有直接包含文本元素 4.获取元素的方法: ①getElementById() ②getElementsByTagName ()  …