寫完了上一節後,忽然發現我一開始都(從上往下分析)構思,不合理。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
這節內容倒是少了,也沒有什麼含量,甚至大夥早就猜到會走這條路。