zoukankan      html  css  js  c++  java
  • backbond整体架构

    (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

  • 相关阅读:
    深入浅出前端本地储存
    移动端H5开发常用技巧总结
    Web API
    嵌入式软件工程师面试题目整理(二)
    嵌入式软件工程师面试题目整理(一)
    扒一扒ELF文件
    SpringCloud — (1) 服务治理Eureka
    asp.net练习①——Application聊天室
    js数字金额转换为大写金额
    SQL触发器
  • 原文地址:https://www.cnblogs.com/Darlietoothpaste/p/6622759.html
Copyright © 2011-2022 走看看