javascript设计模式1
普通写法
function startAnimation(){
    ...
}
function stopAnimation(){
    ...
}
对象类
/*Anim class*/
var Anim=function(){
...
};
Anim.prototype.start = function() {
...
};
Anim.prototype.stop = function() {
...
};
/*Usage*/
var myAnim=new Anim();
myAnim.start();
...
myAnim.stop();
...
也可以这样写
var Anim=function(){
    ...
};
Anim.prototype={
    start:function(){
        ...
    },
    stop:function(){
        ...
    }
};
再尝试一种
Function.prototype.method=function(name,fn){
    this.prototype[name]=fn;
};
var Anim=function(){
    ...
};
Anim.method('start',function(){
    ...
});
Anim.method('stop',function(){
    ...
});
更进一步
Function.prototype.method=function(name,fn){
    this.prototype[name]=fn;
    return this;
};
var Anim=function(){
    ...
};
Anim.method('start',function(){
    ...
}).
Anim.method('stop',function(){
    ...
});
利用匿名函数我们可以这样
(function(){
    var foo=10;
    var bar=2;
    alert(foo*bar);
})();
也可以这样
(function(foo,bar){
    alert(foo*bar);
})(10,2);
在js中,一切都是对象
function displayError(message){
    displayError.numb++;
    alert(message);
};
displayError.numb=0;
引申一下
function Person(name,age){
    this.name=name;
    this.age=age;
};
Person.prototype={
    getName:function(){
        return this.name;
    },
    getAge:function(){
        return this.age;
    }
}
var alice=new Person('Alice',26);
var bill=new Person('Bill',23);
Person.prototype.getGreeting=function(){
    return 'Hi'+this.getName()+'!';
};
alice.displayGreeting=function(){
    alert(this.getGreeting());
}
javascript设计模式1的更多相关文章
- 《JavaScript设计模式 张》整理
		最近在研读另外一本关于设计模式的书<JavaScript设计模式>,这本书中描述了更多的设计模式. 一.创建型设计模式 包括简单工厂.工厂方法.抽象工厂.建造者.原型和单例模式. 1)简单 ... 
- 《JavaScript设计模式与开发实践》整理
		最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ... 
- Javascript设计模式学习一
		学习Javascript设计模式之前,需要先了解一些相关知识,面向对象的基础知识.this等重要概念,以及掌握一些函数式编程的技巧. Js多态 多态的思想:实际上是把“做什么”和“谁去做”分离开来.例 ... 
- javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件(三)
		在上一篇<javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)>里,通过采用模板方法模式完成了切换效果对象的构建编写. 接下来就是完成各效果对象的调 ... 
- javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)
		在上一篇<javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)>里,通过采用迭代器模式完成了各初始化函数的定义和调用. 接下来就要完成各个切换效果的编 ... 
- javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)
		类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些. 比较常用之一的就是窗帘切换了. ... 
- 常用的Javascript设计模式
		<parctical common lisp>的作者曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型 ... 
- Javascript设计模式(摘译)
		说明: 未完成...更新中.... 一.javascipt设计模式分类 设计模式分类有很多标准,最流行的三种如下 1) creational -- 主要关注对象创建 Creational des ... 
- JavaScript设计模式学习笔记
		1 JavaScript设计模式深入分析 私有属性和方法:函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量. 特权属性和方法:创建属 ... 
- JavaScript设计模式:读书笔记(未完)
		该篇随我读书的进度持续更新阅读书目:<JavaScript设计模式> 2016/3/30 2016/3/31 2016/4/8 2016/3/30: 模式是一种可复用的解决方案,可用于解决 ... 
随机推荐
- Visual C++ 对话框增加菜单栏
			1.添加菜单资源 在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例 如: 菜单1 ... 
- JS-------DOM0级事件处理和DOM2级事件处理-------简单记法
			0级DOM 分为2个:一是在标签内写onclick事件 二是在JS写onlicke=function(){}函数 1) <input id="myButton" type= ... 
- MINA实战
			backlog,放入到acceptor队列中还未处理最大数量: solinger参数,用来说明close之后是否直接关闭:参数越大,等待时间越长. mina中的udp处理,即使对端关闭也会继续传输,但 ... 
- checking it the current  os is a 32bit or 64bit version  检查操作系统是32位还是64位
			) { Console.WriteLine("32bit os"); } ) { Console.WriteLine("64bit os"); } 
- cmd命令查看端口和进程信息
			在我们进行WEB开发时,往往会遇到socket连接到服务器出现无法响应的问题,归根结底就是网络通讯问题,或者端口未开启的问题,下面总结了一下找出原因的方法 1 看与服务器的连接:ping ip地址 
- posix和system v有什么区别/?
			posix和system v有什么区别/?现在在应用时应用那一标准浮云484212 | 浏览 243 次 2014-11-06 10:362014-11-19 22:36 最佳答案们是有关信号量的两组 ... 
- ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
			http://blog.csdn.net/fox123871/article/details/8165431 session是工作在你的应用程序进程中的.asp.net进程.iis往往会在20分钟之后 ... 
- HDU 1059 Dividing(多重背包)
			点我看题目 题意: 将大理石的重量分为六个等级,每个等级所在的数字代表这个等级的大理石的数量,如果是0说明这个重量的大理石没有.将其按重量分成两份,看能否分成. 思路 :一开始以为是简单的01背包,结 ... 
- IE10与IMG图片PNG显示不了 WP中的WebBrowser中无法查看PNG格式的图片
			在IE10下,IMG的图片不能是PNG格式的,PNG格式显示不了,JPG显示就可以 
- spin_lock & mutex_lock的区别?
			http://blog.csdn.net/sunnytina/article/details/7615520 为什么需要内核锁? 多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是 ... 
