写完了上一节后,忽然发现我一开始都(从上往下分析)构思,不合理。html
来看几张图api
在看看backbone的api结构。this
给你们看这些的缘由,也是我一个分析的思路。我会先把源码里的8大块划分出来,大概的略过一遍,而后在独个独个的把小功能讲解一边。spa
固然除了公开的功能,还少不了私有的功能。prototype
看完了这些是否是能够发挥想象力,若是让咱们来写这个东西会怎么写?code
1 var backbone = { 2 events : { 3 }, 4 5 model : { 6 }, 7 8 collection : { 9 10 }, 11 12 router : { 13 }, 14 15 history : { 16 }, 17 18 sync : { 19 20 }, 21 22 view : { 23 24 }, 25 26 utility : { 27 28 } 29 30 }
哈哈,是否是一个大致的就出来了。router
就像以前的 backbone.view.extend({});htm
我来模拟一下,先说,我没偷看代码,我也敢确定,backbone写的和我不同。看看是否是模拟了它的功能呢?blog
1 window.backbone = { 2 view : { 3 extend : function (config) { 4 function cc() { 5 6 } 7 cc.prototype.initialize = function () { 8 this.initialize(); 9 }; 10 11 var cc1 = new cc(); 12 13 cc1.initialize.call(config); 14 15 } 16 } 17 }; 18 19 window.onload = function () { 20 backbone.view.extend({ 21 initialize : function () { 22 this.render(); 23 }, 24 render : function () { 25 alert('妈蛋'); 26 } 27 }); 28 }
把它复制粘贴,而后试着运行一下,而后在backbone.view.extend({})尽情的去添加功能,你必须从新设置initialize,来执行你要执行的方法。backbone
这节内容倒是少了,也没有什么含量,甚至大伙早就猜到会走这条路。