使用情景区别

listenTo用于监听自身意外的对象

on用于监听自身

listenTo和on中的回调函数里的this的区别

listener.listenTo(object, 'eventName', function(){

    //此处的this指向listener

})

object.on('eventName', function(){

    //此处的this指向object

})

object.on('eventName', function(){

    //此处的this指向context

}, context)

触发顺序

当存在同名事件时,会按定义顺序执行,on和listenTo定义的事件会处在同一队列中

若监听了all事件,则触发任意事件都将会在执行完相应回调后执行all事件的回调,  all事件的监听会传递一个参数,该参数为事件名字

demo

                var a = {type: "I'm listening"}, b = {type: "I'm listened"};
_.extend(a, Backbone.Events);
_.extend(b, Backbone.Events);
b.on('onNoContext', function(){
console.log('trigger onNoContext');
console.log(this.type);
});
b.on('onContext', function(){
console.log('trigger onContext');
console.log(this.type);
}, a);
a.listenTo(b, 'listened', function(){
console.log('trigger listened');
console.log(this.type);
});
b.on('all', function(){
console.log('trigger on all');
});
a.listenTo(b,'all', function(){
console.log('trigger listen all');
}); console.log('###b.trigger("all")###');
b.trigger('all');
console.log('###b.trigger("onNoContext")###');
b.trigger('onNoContext');
console.log('###b.trigger("onContext")###');
b.trigger('onContext');
console.log('###b.trigger("listened")###');
b.trigger('listened');

运行结果:

1  ###b.trigger("all")###
2 trigger on all
3 trigger listen all
4 trigger on all
5 trigger listen all
6 ###b.trigger("onNoContext")###
7 trigger onNoContext
8 I'm listened
9 trigger on all
10 trigger listen all
11 ###b.trigger("onContext")###
12 trigger onContext
13 I'm listening
14 trigger on all
15 trigger listen all
16 ###b.trigger("listened")###
17 trigger listened
18 I'm listening
19 trigger on all
20 trigger listen all

Backbone的 listenTo 和 on的更多相关文章

  1. Backbone事件模块及其用法

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

  2. 【转】Backbone使用总结

    转自  http://www.pchou.info/javascript/2014/06/26/backbone-summary-01.html 开始在项目中大规模使用backbone,一路磕磕碰碰, ...

  3. Backbone学习记录(1)

    去年买的<基于MVC的javascript Web富应用开发>,拖到现在还没看完,作者介绍了三个MVC框架,Spine ,backbone和javascriptMVC.1和2在国内的流行度 ...

  4. listenTo - backbone.js

    listenToobject.listenTo(other, event, callback) 让 object 监听 另一个(other)对象上的一个特定事件.不使用other.on(event, ...

  5. 我对Backbone.js的一些认识

    backbone.js已经不是当前最流行的前端框架了,但是对于我而言,依然具有比较好的学习价值.虽然目前来说,react,vue等mvvm框架非常火热,但是感觉自身还不到去使用这种框架的层次.这些技术 ...

  6. backbone学习总结(二)

    今天来看下backbone的路由控制的功能.其实个人感觉backbone,模块就那么几个,熟悉它的框架结构,以及组成,就差不多. 废话不多说,我们来看看还剩下的功能. 关于路由和历史管理 通过 Bac ...

  7. Backbone 学习笔记

    Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用. 借助Backbone 我们可以使用REST的方式来最小化客户 ...

  8. Backbone源码阅读手记

    Backbone.js是前端的MVC框架,它通过提供模型Models.集合Collection.视图Veiew赋予了Web应用程序分层结构.从源码中可以知道,Backbone主要分了以下几个模块: ( ...

  9. TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之三 Views

    这个版本的TodoMVC中的视图组织划分比较细,更加易于理解,这也得益于Marionette为我们带来了丰富的视图选择,原生的backbone只有views,而Marionette则有itemview ...

随机推荐

  1. EF学习

    一.EF介绍 实体框架 Entity Framework 是ADO.NET 中的一组支持开发面向数据的软件应用程序的技术.在 EF 中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文 ...

  2. Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互

    前面几篇中实现的client每次运行只能从命令行读取一个字符串发给服务器,再从服务器收回来,现在我们把它改成交互式的,不断从终端接受用户输入并和server交互. /* client.c */ #in ...

  3. 【android】adb连接几个常见问题(遇到再新增)

    不知道为什么,每次连接手机,都提示 adb server is out of date,偶尔也会提示not found 每次去百度,都好多方法---终于有一种方法非常靠谱,遂,记录之--- 问题一:o ...

  4. Android调用系统相机和文件浏览器

    //拍照功能,调用系统的相机功能 Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResul ...

  5. HDU_2047——EOF字符串排序排列问题,递推

    Problem Description 今年的ACM暑期集训队一共有18人,分为6支队伍.其中有一个叫做EOF的队伍,由04级的阿牛.XC以及05级的COY组成.在共同的集训生活中,大家建立了深厚的友 ...

  6. svn版本信息自动更新到源代码

     背景:在线上代码和线下代码不一致时,用这个时间先比对是很重要的,首先看时间确定是不是最新的代码,再进行问题排查是很有必要的.Subversion 的 svn:keywords 是一个非常有用的功能, ...

  7. Python进阶(面向对象编程基础)(三)

    6.类属性和实例属性名字冲突怎么办 修改类属性会导致所有实例访问到的类属性全部都受影响,但是,如果在实例变量上修改类属性会发生什么问题呢? class Person(object): address ...

  8. 带有中文的url和NSString中文的转换

    NSString *url = @"http://tw.news.yahoo.com/麵包魂東京吸睛-粉絲包圍導演-061222049.html"; NSLog(@"ur ...

  9. 使用Eclipse生成自动生成apk

    使用Eclipse生成自动生成apk     在eclipse的Preferences -> Android -> Build中有一项“Skip packaging and dexing ...

  10. MongoDB每64位版本下载

    MongoDB每64位版本下载: http://dl.mongodb.org/dl/win32/x86_64 版权声明:本文博主原创文章,博客,未经同意不得转载.