1. 注册事件 on 或者 addListener,触发事件 emit

1-1简单的使用:

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 //求安慰:

 function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游1');
}); //触发:
life.emit('求安慰', '汉子');

  • 这里一共有两个事件, 求安慰,  一共有 9个动作;   求溺爱 ,一共有 3个动作
  • 添加事件监听 有 addListener()  和 on() 两种方法,  这两种方法都 可以 使用 具名函数 和 匿名函数.
  • emit() 触发事件,   上面 没有触发 [求溺爱]事件, 因此没有输出.

---------------------------------------

触发 [求溺爱] 事件.

 //触发:
life.emit('求安慰', '汉子'); life.emit('求溺爱', '妹子');

-----------------------------------------------------------------------

1-2emit(event, 参数1, 参数2,参数3) 传递多个参数的时候:

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 //求安慰:

 function water(who){
console.log('给 ' +who+ ' 倒水1');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩2');
}); function cook(who){
console.log('给 ' +who+ ' 做饭3');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服4');
}); life.on('求安慰', function(){
console.log('这个是 第 5个 监听器');
}); life.on('求安慰', function(address, age){
console.log('我要去' +address+ '旅游,我的年龄是' +age );
}); //触发:
life.emit('求安慰', '汉子', '北京', 26);

红色部分显然是不符合我们的要求的.

---

解决办法: 使得 36行是 3个参数, 但是 第一个参数不使用 .

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 //求安慰:

 function water(who){
console.log('给 ' +who+ ' 倒水1');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩2');
}); function cook(who){
console.log('给 ' +who+ ' 做饭3');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服4');
}); life.on('求安慰', function(){
console.log('这个是 第 5个 监听器');
}); life.on('求安慰', function(who, address, age){
console.log('我要去' +address+ '旅游,我的年龄是' +age );
}); //触发:
life.emit('求安慰', '汉子', '北京', 26);

1-3:如何判断 事件有没有注册 监听器?

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 //求安慰:

 function water(who){
console.log('给 ' +who+ ' 倒水1');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩2');
}); function cook(who){
console.log('给 ' +who+ ' 做饭3');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服4');
}); life.on('求安慰', function(){
console.log('这个是 第 5个 监听器');
}); life.on('求安慰', function(who, address, age){
console.log('我要去' +address+ '旅游,我的年龄是' +age );
}); //触发:
var anwei = life.emit('求安慰', '汉子', '北京', 26); var niai = life.emit('求溺爱'); console.log(anwei);
console.log(niai);

可见 , [求安慰] 事件 注册了 监听器,   [求溺爱]事件 没有注册 监听器.

2. 设置事件 可以拥有的监听器数量.setMaxListeners(n)

默认是10个:

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 //求安慰:

 function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游1');
}); //触发:
life.emit('求安慰', '汉子'); life.emit('求溺爱', '妹子');

--------------------------------------

增加 事件 的 最大监听器数量为 11.

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 // 设置事件 允许  的 最多 监听器 的数量
life.setMaxListeners(11); //求安慰: function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影2');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游3');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....4');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....11');
}); //触发:
life.emit('求安慰', '汉子'); life.emit('求溺爱', '妹子');

注意:

  1.   life.setMaxListeners(11); 在添加事件之前 设置 允许 的 事件 监听器 数量是 11个.
  2. 添加的事件监听器 数量 是 针对 所有的事件 生效的;   本 脚本内, 有两个事件, [求安慰] [求溺爱] 都 有了 11个 监听器.

3. 移除单个:  移除某个事件 的 某一个监听器. removeListener(event, listener)

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 // 设置事件 允许  的 最多 监听器 的数量
life.setMaxListeners(11); //求安慰: function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影2');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游3');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....4');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....11');
}); life.removeListener('求安慰', water); //触发:
life.emit('求安慰', '汉子'); life.emit('求溺爱', '妹子');

注意:

  1. 上面移除了 water 对应的 [倒水]事件.
  2. 这个函数只能移除 单个事件的 某个监听器
    1. 不可以移除 所有的事件 的 监听器
    2. 不可以移除 单个事件的 所有监听器,  removeListen('求安慰') , 这种用法 会 报错
  3. 这个函数 只能 移除  具名函数 对应 的监听器 ;  匿名函数 注册的监听器 无法移除.

4. 判断 事件拥有的 监听器 的数量  listeners(event)    ,  listenerCount(emitter, event)

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 // 设置事件 允许  的 最多 监听器 的数量
life.setMaxListeners(11); //求安慰: function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影2');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游3');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....4');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....11');
}); console.log('移除前:');
console.log(life.listeners().length);
console.log(life.listeners('求安慰').length); console.log(EventEmitter.listenerCount(life, '求安慰')); life.removeListener('求安慰', water); console.log('移除后:');
console.log(life.listeners().length);
console.log(life.listeners('求安慰').length); console.log(EventEmitter.listenerCount(life, '求安慰')); //触发:
// life.emit('求安慰', '汉子'); // life.emit('求溺爱', '妹子');

注意:

  1. EventEmitter类的实例.listeners(事件名).length   和  EventEmitter.listenerCount(实例名, 事件名) 都可以获得 对应的实例中 的 对应 的事件 绑定 的监听器数量
  2. EventEmitter类的实例.listeners().length  , 如果没有传递 事件名 , 数量就是0 ;  可见 必须传递事件名
  3. 移除water之前 ,  [求安慰] 的监听器 是 11个  ,  移除water之后,  [求安慰] 的监听器 数量 是  10个.

5. 批量移除 某个实例中的事件绑定 的 监听器 : removeAllListeners([event])

5-1: 批量移除 某个实例 中的 某个事件 的所有 监听器:

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 // 设置事件 允许  的 最多 监听器 的数量
life.setMaxListeners(11); //求安慰: function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影2');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游3');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....4');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....11');
}); life.removeAllListeners('求安慰'); //触发:
var anwei = life.emit('求安慰', '汉子');
var niai = life.emit('求溺爱', '妹子'); console.log(anwei);
console.log(niai);

可见 [求安慰] 没有注册事件.

5-2: 批量移除 某个实例 中 的所有事件 的 监听器:

 var EventEmitter =  require('events').EventEmitter;

 var life = new EventEmitter();

 // 设置事件 允许  的 最多 监听器 的数量
life.setMaxListeners(11); //求安慰: function water(who){
console.log('给 ' +who+ ' 倒水');
}
//具名函数
life.addListener('求安慰', water); //匿名函数
life.addListener('求安慰', function(who){
console.log('给 ' +who+ ' 揉肩');
}); function cook(who){
console.log('给 ' +who+ ' 做饭');
}
//具名函数
life.on('求安慰', cook);
//匿名函数
life.on('求安慰', function(who){
console.log('给 ' +who+ ' 洗衣服');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求安慰', function(who){
console.log('给 ' +who+ ' .....11');
}); //求溺爱 life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 买包包1');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 看电影2');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' 去旅游3');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....4');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....5');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....6');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....7');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....8');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....9');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....10');
}); life.on('求溺爱', function(who){
console.log('给 ' +who+ ' .....11');
}); // life.removeAllListeners('求安慰');
life.removeAllListeners(); //触发:
var anwei = life.emit('求安慰', '汉子');
var niai = life.emit('求溺爱', '妹子'); console.log(anwei);
console.log(niai);

可见 , [求安慰],[求溺爱] 都没有 监听器.

参考链接:

nodejs -- event 模块, 事件模块.的更多相关文章

  1. nodeJS学习(10) --- 事件模块

    转载:http://www.cnblogs.com/zhongweiv/p/nodejs_events.html 目录 简介及资料 事件常用函数及使用 emitter.on(event, listen ...

  2. 自己实现一个javascript事件模块

    nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...

  3. 深入理解nodejs的异步IO与事件模块机制

    node为什么要使用异步I/O 异步I/O的技术方案:轮询技术 node的异步I/O nodejs事件环 一.node为什么要使用异步I/O 异步最先诞生于操作系统的底层,在底层系统中,异步通过信号量 ...

  4. nodejs事件模块

    nodejs 事件模块 events 只有一个对象 EventEmitter . var EventEmitter = require('events').EventEmitter;var life ...

  5. jquery源码分析(七)——事件模块 event(二)

    上一章节探讨了事件的一些概念,接下来看下jQuery的事件模块. jQuery对事件的绑定分别有几个API:.bind()/.live()/.delegate()/.on()/click(), 不管是 ...

  6. Node.js:events事件模块

    Nodejs的大部分核心API都是基于异步事件驱动设计的,所有可以分发事件的对象都是EventEmitter类的实例. 大家知道,由于nodejs是单线程运行的,所以nodejs需要借助事件轮询,不断 ...

  7. jQuery源代码学习之九—jQuery事件模块

    jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...

  8. Backbone事件模块源码分析

    事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...

  9. nginx事件模块分析(一)

    nginx ngx_events_module模块分析 ngx_events_module模块是核心模块之一,它是其它所有事件模块的代理模块.nginx在启动时只与events模块打交道,而由even ...

随机推荐

  1. Mysql数据库优化之SQL及索引优化

    1. 如何发现有问题的SQL?  使用mysql慢查询日志对有效率问题的Sql进行监视 (1) show  variables like 'slow_query_log';     查看慢查询日志是否 ...

  2. 【winform】DataGridView控件[表格]

    一.表格 0.从数据库获取一个表在DataGridView中显示: 数据库查询的方式大同小异,重点是如何把数据显示到控件中的方法,通过dataset作为数据的中继,把Adapter中的数据存到data ...

  3. Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑

    Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑解决办法:1.首先将Servers中部署的 ...

  4. laravel 分页使用

    分页 //对数据库结果分页 $users = DB::table('users')->paginate(15); //可以对 Eloquent 模型分页: $allUsers = User::p ...

  5. if __name__ == "__main__":

    工欲善其事,必先利其器 # 环境:Python3.6 + win10 # 目录结构: D:\test\ # 目录 ├─ t1.py # 文件 └─ t2.py # 文件 让模块如脚本一样运行 在Pyt ...

  6. xshell的优化和连接

    远程连接linux ###远程连接工具---xshell/SecureCRT/Putty 商业版(收费) 家庭版(免费) 一.xshell进行优化 1.打开文件属性 2.设置终端类型问linux,输入 ...

  7. 【题解】Luogu P3931 SAC E#1 - 一道难题 Tree

    原题传送门 题目几乎告诉你要用最大流 先进行搜索,将树的叶子节点都连到一个虚拟点T上,流量为inf(这样不会干扰到前面部分的最大流) 其他边按树的形态连边,以根节点为S,跑一变最大流即可求出答案 #i ...

  8. 结合iconworkshop,创建ribbon界面

    mfc实现的程序中,ribbon界面是主流,比较适合测量类项目.几个修改图标的小技巧: 1.现有的bmp,可以直接修改 在好几个地方,已经将IDB_*和显示效果对接清楚了,直接修改这里的bmp,就可以 ...

  9. 剑指offer(41)和为S的连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...

  10. event.target.dataset

    dataset并不是典型意义上的JavaScript对象,而是个DOMStringMap对象,DOMStringMap是HTML5一种新的含有多个名-值对的交互变量. 1.event.target.d ...