码迷,mamicode.com
首页 > Web开发 > 详细

暴力分析backbone.js(3)

时间:2015-05-04 19:48:41      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

继续上一节内容,上一节发现backbone.js有很多依赖库,还分了3条路,我选择了最基础的装备jQuery 和 undercore,走最后一条。带着疑问和简单的Dome来分析backbone.js。

  从最后一条路开始讲解,来看一下代码

1 root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));

  仔细看一段,root.Backbone = factory(.....),不是把factory  这个函数赋给 root.Backbone,函数加上括号才是执行,所以把一个执行函数赋值给变量,结果执行的函数有返回值即变量被赋予了执行的函数的返回值,不然呢?(上图片看真相)

  没返回值的函数,执行后赋值给变量技术分享有返回值的函数,执行后赋值给变量技术分享 

  所以,factory这个函数必定是返回了东西。拖到最后面看看是不是有return 呢!

  技术分享

  

  好,开始跑factory()这个函数,来对照一下 形参 和 实参 和 它们的一个关系。

factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));

function(root, Backbone, _, $){}

  在一开始自执行的时候把 function(root,Backbone,_,$){} 传递给 factory 的时候,它们的关系是: 前者 实参 后者 形参。

  在执行factory函数的时候,factory传参的内容为实参,而 function(root,Backbone,_,$){}的参数为型参。

  看一下实际传递到的是什么?

  function(
    root === window,

    Backbone === {},

    _ === root._ === window._ === Underscore.js

    $ === (root.jQuery || root.Zepto || root.ender || root.$) === 我们引入 前面3个库其中1一个,或者是有$的库,优先级是jQuery最高

  )

  技术分享

  好,休息一下。

暴力分析backbone.js(3)

标签:

原文地址:http://www.cnblogs.com/superjs/p/4476709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!