JS技术

暴力分析backbone.js(3)

字号+ 作者:superjs 来源:cnblog 2015-06-06 16:36 我要评论( )

继续 上一节 内容,上一节发现backbone.js有很多依赖库,还分了3条路,我选择了最基础的装备jQuery 和 undercore,走最后一条。带着疑问和简单的Dome来分析backbone.js。 从最后一条路开始讲解,来看一下代码 1 root.Backbone = factory(root, {}, root._, (

继续上一节内容,上一节发现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最高

  )

  

  好,休息一下。本文转自http://www.cnblogs.com/superjs

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • SSH网上商城---需求分析+表关系分析 - 丁国华 廊坊师范学院信息技术提高班 第十期 - 博客频道 - CSDN.N

    SSH网上商城---需求分析+表关系分析 - 丁国华 廊坊师范学院信息技术

    2015-12-14 17:36

  • 查找栈的增长方向的分析及C代码实现 - 周兆熊的专栏 - 博客频道 - CSDN.NET 周兆熊的专栏 2015年度“博

    查找栈的增长方向的分析及C代码实现 - 周兆熊的专栏 - 博客频道 - CS

    2015-12-14 15:15

  • 全球最低功耗蓝牙单芯片(DA14580)系统架构和应用开发框架分析 - 嵌入式企鹅圈 - 博客频道 - CSDN.NET

    全球最低功耗蓝牙单芯片(DA14580)系统架构和应用开发框架分析 - 嵌

    2015-12-13 11:31

  • 关于搜索引擎页面分析中的 javascript 处理的2个思路_javascript教程教程

    关于搜索引擎页面分析中的 javascript 处理的2个思路_javascript教程

    2015-10-04 10:02

网友点评
c