JavaScript patterns simplified--javascript模式
来源:互联网 发布:5月网络主播黑名单 编辑:程序博客网 时间:2024/05/25 01:34
Adapter Design Pattern in C#
介绍
JavaScript语言存在自1995(如果我没记错的话),它是Web客户端开发的一个选择性语言。开始写javascript代码非常简单,但成为一个专家是不容易的。其中一个原因是,JavaScript是一个动态的语言,因为有多种方法来做同样的事情。写一份套管代码,使得它以后很难维护。
使任何一个语言更易维护的是使用设计模式,JavaScript代码的方式也不例外。很有多文章描述JavaScript模式。我觉得把它们列出在一个地方,并提供了一个简短的说明是一个好主意。
JavaScript有4种基本模式:
原型模式
组件模式
显示模块模式
揭示原型模式
Prototype pattern
.利用固有的JavaScript功能
.由一个构造函数和一个原型
.提供扩展能力
.在所有实例中共享对象的属性,包括所有的“私人”的变量。
// Define a class like thisfunction Person(name) { // Add object properties like this this.name = name;}// Add methods like this. All Person objects will be able to invoke thisPerson.prototype.speak = function() { alert('Hi, my name is ' + this.name);}// Instantiate new objects with 'new'var person = new Person('John');// Invoke methods like thisperson.speak();
Module pattern
提供的变量和函数封装
提供了一种方法来增加 (公共或私人的)成员
每个对象实例在内存中创建新的副本的功能
扩展对象可以是困难,因为没有使用原型设计
// Define a class like thisfunction Person() { // Add methods like this. This is a private method var speak = function speak(name) { alert('Hi, my name is ' + name); } // Return public methods when this object is instantiated. All Person objects will be able to invoke this return { say: speak };}// Instantiate new objects with 'new'var person = new Person();// Invoke methods like thisperson.say('John');person.speak('John'); // undefined
Revealing Prototype pattern
提供的变量和函数封装
结合原型模式和显示模块模式最好的部分
提供了一种方法来增加(公共或私人的)成员
提供扩展能力
// Define a class like thisfunction Person(name) { // Add object properties like this this.name = name;}// Add methods like this. All Person objects will be able to invoke thisPerson.prototype.speak = function() { alert('Hi, my name is ' + this.name);}// Instantiate new objects with 'new'var person = new Person('John');// Invoke methods like thisperson.speak();
Revealing Module pattern
提供的变量和函数封装
提供了一种方法来增加(公共或私人的)成员
清洁的方式来揭露公共成员相比,组件模式
扩展对象困难因为没有使用的原型设计
// Define a class like thisfunction Person() { // Add methods like this. This is a private method var speak = function speak(name) { alert('Hi, my name is ' + name); } // Return public methods when this object is instantiated. All Person objects will be able to invoke this return { say: speak };}// Instantiate new objects with 'new'var person = new Person();// Invoke methods like thisperson.say('John');person.speak('John'); // undefined
0 0
- JavaScript patterns simplified--javascript模式
- “JavaScript patterns”中译本 - 《JavaScript 模式》第一章
- “JavaScript patterns”中译本 - 《JavaScript 模式》第二章
- “JavaScript patterns”中译本 - 《JavaScript 模式》第三章
- Pro JavaScript Design Patterns
- JavaScript Patterns 中文版
- Invocation patterns in JavaScript
- <Learning JavaScript Design Patterns>
- javascript patterns CHAPTER 5 Object Creation Patterns
- 《Learning Javascript Design Patterns》小结
- Design Patterns For Object-Oriented JavaScript
- 【javascript】javascript设计模式
- JAVASCRIPT 模式
- JavaScript模式
- JavaScript模式
- JavaScript 模式
- JavaScript模式
- javascript 模式
- linux jni调用so
- tomcat性能调优
- openssl之BIO系列之17---连接(connect)类型BIO
- 深入hibernate的三种状态
- INNO SETUP多語言及license多語言設置
- JavaScript patterns simplified--javascript模式
- popuwindow报空指针异常
- Java GC 垃圾回收器的类型小结
- linux source 与sh运行脚本的区别
- TO THE MAX
- android.content.res.Resources$NotFoundExcept
- 《编写高质量代码:改善Java程序的151个建议》 建议3
- struts2常用对象
- 字符串中最长子串的问题