<!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. %和format 细说

    Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你 ...

  2. Python学习笔记 - day13 - 进程与线程

    概述 我们都知道windows是支持多任务的操作系统. 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务.打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多 ...

  3. WAMP Apache 2.5 配置虚拟主机

    1.在 Apache 的安装目录下 conf/httpd.conf 文件中搜索 hosts,去掉 Include 前面的 “#” 号后,即可启用虚拟主机. # Virtual hosts #Inclu ...

  4. js获取jsp上下文地址

    参考自博客:http://blog.csdn.net/lanchengxiaoxiao/article/details/7445498

  5. CSS3新属性解释及用法

    一. transition(a标签hover渐隐效果) a:hover{transition: color 0.15s linear 0s, background-color 0.3s linear ...

  6. P4819 [中山市选]杀人游戏

    题目描述 一位冷血的杀手潜入Na-wiat,并假装成平民.警察希望能在NN个人里面,查出谁是杀手.警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人,谁是杀手,谁是平民.假如查 ...

  7. 利用flex布局来column分布

    html代码 <div class='items'> <div class='item'></div> <div class='item'></d ...

  8. AC日记——背单词 洛谷 P2353

    背单词 思路: KMP+统计前缀和优化: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1000005 ], ...

  9. JavaScript将最终获得正确的异步编程

    JavaScript将最终获得正确的异步编程 包括该提案异步 在ECMAScript中的功能已经达到第四阶段; 这意味着它将在2017年发布的标准.但是这对JavaScript开发者意味着什么? 有很 ...

  10. 递归遍历JSON树

    递归遍历JSON树 前几天有个人问我,json串的层级无限深,但在json串中的key是已知的,在json串中的value,有些事Object,有些是Array,如何把这些层级无限深的key所对应的v ...