《JavaScript模式》(JavaScript Patterns)扫描版[PDF]

2019-03-11 05:34|来源: 网络

中文名: JavaScript模式
原名: JavaScript Patterns
作者: Stoyan Stefanov
图书分类: 软件
资源格式: PDF
版本: 扫描版
出版社: 中国电力出版社
书号: 9787512329232
发行时间: 2013年07月01日
地区: 大陆
语言: 简体中文
简介:

内容简介
什么是使用javascript开发应用程序最好的方法呢?本书将使用大量javascript编码模式和最佳实践来帮您回答该问题。如果您是一名有经验的开发人员,正在寻找与对象、函数、继承以及其他特定语言分类相关的解决方案,那么本书中的抽象方案和代码模板将是十分理想的指南,无论您正在使用javascript编写客户端、服务端抑或是桌面应用程序。
   《javascript模式》是由jayascript专家stoyan stefanov撰写,stoyan是yahoo公司的资深技术员,他还是yslow 2.0(一个web性能优化工具)的技术架构师。本书包含了实现每个讨论的模式的实践建议,并附有数个可以立即上手的范例。同时还可以学到一些反模式,一些常见的编程方式,这些编程方式引发的问题比解决的还要多。
内容截图


目录:
前言
第1章简介
模式
javascript:基本概念
ecmascript 5
jslint
console
第2章基本技巧
编写可维护的代码
尽量少用全局变量
for循环
for-in循环
不要增加内置的原型
switch模式
避免使用隐式类型转换
使用parseint()的数值约定
编码约定
命名约定
编写注释
.编写api文档
编写可读性强的代码
同行互查
在正式发布时精简代码
运行jslint
小结
第3章字面量和构造函数
对象字面量
自定义构造函数
强制使用new的模式
数组字面量
json
正则表达式字面量
基本值类型包装器
错误对象
小结
第4章函数
背景
回调模式
返回函数
自定义函数
即时函数
即时对象初始化
初始化时分支
函数属性——备忘模式
配置对象
curry
小结
第5章对象创建模式
命名空间模式
声明依赖关系
私有属性和方法
模块模式
沙箱模式
静态成员
对象常量
链模式
method()方法
小结
第6章代码复用模式
传统与现代继承模式的比较
使用类式继承时的预期结果
类式继承模式#1——默认模式
类式继承模式#2——借用构造函数
类式继承模式#3——借用和设置原型
类式继承模式#4——共享原型
类式继承模式#51临时构造函数
klass
原型继承
通过复制属性实现继承
借用方法
小结
第7章设计模式
单体模式
工厂模式
迭代器模式
装饰者模式
策略模式
外观模式
代理模式
中介者模式
观察者模式
小结
第8章dom和浏览器模式
关注分离
dom脚本
事件
长期运行脚本
远程脚本
配置javascript
载入策略
小结


相关问答

更多
  • 我使用jQuery(以及之前的JavaScript)的经验是,原型继承不如我期待的那么有用。 它有用途,但它对语言并不重要。 在Javascript中,如果你想用foo方法返回一个对象: return { foo: function() { alert('You called foo!'); } }; 呼叫者可以将这些对象视为多态 - 也就是说,他们可以调用foo而不必担心它是什么“类型”的对象。 没有必要继承。 在此背景下,原型仅仅是一种优化。 它们允许您创建大量对象,而无需在每个 ...
  • 以下是三种流行的JavaScript模式。 由于关闭,这些事情容易实现: 模块模式 - Eric Miraglia的示例(并且流行) 记忆 - 例如Oliver Steele Currying - Dustin Diaz的例子 您可能还想查看: 专业JavaScript设计模式由Ross Harmes和Dustin Diaz 以下是Diaz 2008年提出的Google I / O谈话,他在他的书中讨论了一些话题: Google I / O 2008 - 表达式语言中的设计模式 The following ...
  • 这段代码很可怕。 这是一个没有所有无意义闭包的情况下完成某些事情的示例: function Castle(name) { this.name = name; } Castle.prototype.build = function() { console.log("Castle " + this.name) }; var Westeros = { Structures: {} }; Westeros.Structures.Castle = Castle; var winterf ...
  • 至少有三种实现模块模式的方法,但是显示模块模式是唯一具有官方名称的模块模式后代。 基本模块模式 模块模式必须满足以下条件: 私人会员住在关闭中。 公共成员暴露在返回对象中。 但这个定义有很多歧义。 通过不同的解决模糊度,您将获得模块模式的变体。 显示模块模式 显示模块模式是模块模式中最着名和最受欢迎的模式。 与其他替代品相比,它具有许多优点,例如 重命名公共功能而不改变功能体。 通过修改单行,将会员从公共的或私人的更改,而不改变功能体。 除了原来的RMP之外,RMP还满足三个附加条件: 所有成员,无论是公共 ...
  • 就像在ObjC上一样,你可以有单独的“alloc”和“init”条目,例如: function Point() {} Point.prototype.withCoordinates = function(x, y) { this.x = x; this.y = y; return this; } Point.prototype.withOffsetFromPoint = function(p, delta) { this.x = p.x + delta; this ...
  • 这些模式是非常不同的,正如你可能猜到的,第一种更好(但不是最好的)。 让我们比较一下: 最现代的,最好的模式 B.prototype = Object.create(A.prototype); 这使用Object.create函数将B.prototype设置为一个新的对象,该对象的内部[[Prototype]]是A.prototype 。 这基本上就是你想要的:它将使B实例在适当时委托给A.prototype 。 原始模式 B.prototype = new A(); 在ES5的Object.creat ...
  • 在这个异步函数的非阻塞范围内发生了什么? 它是非阻塞的,因为foo是一个调用至少一个其他异步函数的异步函数,因此对foo的调用不会阻塞线程,直到完成所有工作。 浏览器上只有一个主UI线程(并且NodeJS中有一个线程),所以除非在浏览器中使用web worker,否则异步代码在某些时候会占用该线程(例如阻塞)。 但是你在foo调用的异步函数不会阻塞foo的线程; 相反, foo会在所有异步工作完成后最终返回一个最终解决的承诺。 (这就是为什么它是一个异步函数。) 如果是这样,我可以只使用一系列同步函数,因为 ...
  • MyTemplate解决方案为用户提供两个接口。 他可以用来向Template添加新模板。 另一个允许他指定模板的功能: interface ITemplate{ } interface ITemplateStatic{ events:Function; } declare var Template:ITemplate; // the user's code: interface ITemplate{ myTemplate:ITemplateStatic; } Template. ...
  • 您可能需要阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter 例: var patternToExtractOperand = "\\s*([A-Za-z]+)(\\d*)"; var regExp = new RegExp(patternToExtractOperand, "g"); con ...
  • http://www.learningjquery.com/2007/10/a-plugin-development-pattern 本文帮助我开始使用我的第一个jquery插件。 PS 阅读其他代码有时会有所帮助。 也可以成为灵感和动力的重要来源(因为您阅读的代码要么太可怕,要么太闪亮......) http://www.learningjquery.com/2007/10/a-plugin-development-pattern This article helped getting started w ...