前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >backbond整体架构

backbond整体架构

作者头像
菜的黑人牙膏
发布2019-01-21 15:57:57
4160
发布2019-01-21 15:57:57
举报
代码语言:javascript
复制
(function(factory) {
    // 在这里是backbone模块化的一个接口。支持AMD,CMD和全局变量模式。代码很好理解。
})(function(root, factory, _, $) {

    // 各种参数和函数的定义

    Backbone.noConflict = function(){};

    var Events = Backbone.Events = {};
    // 然后是各种Events方法的添加
    // Events在Backbone里面非常重要,Model,Collection和View都extend了它。(不知道怎么说才自然...)所以他们都可以发起订阅事件,发起事件。当然,用户也可以自己拿自己的对象拓展一下,那样也可以订阅发起事件了~

    var Model = Backbone.Model = function(){};
    _.extend(Model.prototype, Events, {
        // 这里是各种对Model.prototype的拓展,定义各种方法
    });

    var Collection = Backbone.Collection = function(){};
    _.extend(Collection.prototype, Events, {
        // 这里是各种对Collection.prototype的拓展,定义各种方法
    });

    var View = Backbone.View = function(){};
    _.extend(View.prototype, Events, {
        // 这里是各种对View.prototype的拓展,定义各种方法
    });

    Backbone.sync = function(){};
    Backbone.ajax = function(){};

    var Router = Backbone.Router = function(){};
    _.extend(Router.prototype, Events, {
        // 这里是各种对Router.prototype的拓展,定义各种方法
    });

    var History = Backbone.History = function(){};
    _.extend(History.prototype, Events, {
        // 这里是各种对History.prototype的拓展,定义各种方法
    });
    // 用History定义实例
    Backbone.history = new History;

    // 接下来是helper函数extend
    var extend = function(){};
    Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;
    // 其他的还有urlError,warpError函数

    return Backbone;
});

原文地址:https://segmentfault.com/a/1190000006697372

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档