<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=">
<title>test </title>
</head>
<body>
<script>
(function(window){ function comets(url){
if (!url || typeof url != 'string')
{
return;
} var Client = function(url) {
var self = this;
this.events = [];
this.onmessage = function(e){
console.log('此时如果Client.onmessage 被执行 Client.events属性中就是 function(data){ for (var i = 0; i < fs.length; i++) {'+
'fs[i](data.parseJSON(), data);} } 这里fs会去找');
var es = this.events;
for (var i = 0; i < es.length; i++)
{
es[i](11111, 'hello world'); //es[i] 相当于A函数
}
} //绑定推送事件
this.bind = function(handle) {
if (typeof handle != 'function')
{
return this;
} this.events.push(handle);
console.log('--------client对象中的bind()方法将 传过来的参数 追加到 Client.events属性');
return this;
} setInterval(function() { self.onmessage();}, 2000);
} return new Client(url);
} var _ = {};
/*推送模块*/
_.comet = {
_funcs : [], //不断往此数组追加函数
init : function(){
var fs = this._funcs;
console.log('_.comet.init() 函数被执行 comets函数被执行,并实例化它内部的client对象返回 client对象中的bind()方法被执行');
var url ='bixin.beta.golds-cloud.com?channel_id=r1000';
comets(url).bind(function(a, b){
for (var i = 0; i < fs.length; i++)
{
fs[i](a, b); //执行_funcs中的元素(追加的函数)
}
});
},
bind : function(func){
if (typeof func != 'function')
{
return false;
}
this._funcs.push(func); //不断的将方法 追加进_funcs数组中
console.log('_.comet.bind()函数已经将传过来的 函数 作为参数追加到了_.comet._funcs数组中');
}
} _.chat = {
time: new Date(),
init:function(){
console.log('_.chat.init()函数已经被执行');
_.comet.bind(function(j, d){ console.log(j +" -第一种方式打印- "+ d);}); _.comet.bind(function(j, d){ console.log(j +" -第二种方式打印- "+ d);}); _.comet.bind(function(j, d){ console.log(j +" -第二种方式打印- "+ d);});
}
}; _.init = function() {
_.comet.init();
_.chat.init();
};
window.HD = _;
})(window); //执行
HD.init();
</script>
</body>
</html>

一段javascript设计模式应用场景的更多相关文章

  1. 常用的Javascript设计模式

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

  2. 转载,javascript 设计模式

    了解JavaScript设计模式我们需要知道的一些必要知识点:(内容相对基础,高手请跳过) 闭包:关于闭包这个月在园子里有几篇不错的分享了,在这我也从最实际的地方出发,说说我的理解. 1.闭包最常用的 ...

  3. 【JavaScript设计模式系列---开篇预览】

    转:http://www.cnblogs.com/Darren_code/archive/2011/08/31/JavascripDesignPatterns.html 2011-08-31 23:5 ...

  4. javascript 设计模式

    了解JavaScript设计模式我们需要知道的一些必要知识点:(内容相对基础,高手请跳过) 闭包:关于闭包这个月在园子里有几篇不错的分享了,在这我也从最实际的地方出发,说说我的理解. 1.闭包最常用的 ...

  5. Javascript设计模式理论与实战:工厂方法模式

    本文从简单工厂模式的缺点说起,引入工厂方法模式,介绍的工厂方法模式的基本知识,实现要点和应用场景,最后举例进行说明工厂方法模式的应用.在之前的<Javascript设计模式理论与实战:简单工厂模 ...

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

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

  7. Javascript设计模式学习一

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

  8. Javascript设计模式(摘译)

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

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

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

随机推荐

  1. linux下守护进程的创建

    最近在学习linux c编程 看到了守护进程的创建,感觉很好玩, 测试环境ubuntu 15.04 下面贴出测试代码 #include <stdio.h> #include <std ...

  2. [Think] position与anchorPoint关系

    1.简介: 最近在学习动画,所以接触到了CAlayer类. 其中的position与anchorPoint关系一感觉一头雾水,网上有篇文章 彻底理解position和anchorPoint关系  里面 ...

  3. [How to]如何自定义plist文件和读取plist文件内容

    1.简介 plist作为IOS的固化文件,就好比java中properties文件,但是在IOS中plist是可读写的. 本文将介绍自定义静态的plist文件. 2.自定义静态plist文件 右击你的 ...

  4. C++11——Use auto keyword in C++11

    版权声明:本文系原创,转载请注明来源. Compile your program with: g++ -std=c++ -o target_name filen_ame.cpp or: g++ -st ...

  5. HIbernate学习笔记3 之 缓存和 对象的三种状态

    一.hibernate一级缓存 *  hibernate创建每个Session对象时,都会给该Session分配一块独立的缓冲区,用于存放Session查询出来的对象,这个分配给session的缓存区 ...

  6. go run/ go install/ go build / go get的区别

    go run 运行当个.go文件 go install 在编译源代码之后还安装到指定的目录 go build 加上可编译的go源文件可以得到一个可执行文件 go get = git clone + g ...

  7. Windows7 + OSG3.6 + VS2017 + Qt5.11

    一.准备工作 下载需要的材料: 1. OSG稳定版源代码, 3.6.3版本 2. 第三方库,选择VS2017对应的版本  https://download.osgvisual.org/3rdParty ...

  8. 前端读者 | 百度前端编码规范(CSS)

    本文来自:百度FEX 1 前言 CSS作为网页样式的描述语言,在百度一直有着广泛的应用.本文档的目标是使CSS代码风格保持一致,容易被理解和被维护. 虽然本文档是针对CSS设计的,但是在使用各种CSS ...

  9. bzoj 3295 CDQ求动态逆序对

    #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...

  10. centos7 samba安装

    http://www.cnblogs.com/muscleape/p/6385583.html 1 安装yum install samba 2 添加用户xxx smbpasswd -a xxx 3 s ...