underscore.js 分析 第三天

  // Create a safe reference to the Underscore object for use below.
  // 为Underscore对象创建一个安全的引用
  // _为一个函数对象,它的实例服从单例模式。
  var _ = function(obj) {
    if (obj instanceof _) return obj;
    if (!(this instanceof _)) return new _(obj);
    this._wrapped = obj;
  };

来一个最简单的例子

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Underscore</title>
    <script src="underscore.js"></script>
</head>
<body>
</body>
</html>

<script type="text/javascript">
// 在浏览器中 _ 是全局对象
// 查看Underscore的当前版本
alert(_.VERSION);
</script>
时间: 2024-08-09 10:16:04

underscore.js 分析 第三天的相关文章

Underscore.js 分析

Underscore.js的源码和适合第一次看源码的人,因为文件比较小,而且没有依赖,读起来比较轻松.代码写的还很是很简练的. 我看的是1.7的源码,下面说说我觉得比较有意思的几个地方 1. _.isUndefined = function(obj) { return obj === void 0; }; 代码里好几个地方都用到了void 0,而不是undefined判断一个object是不是undefined.据说这样是因为有些浏览器允许改变undefined的值.比如undefined =

Hammer.js分析(三)——input.js

input.js是所有input文件夹中类的父类,浏览器事件绑定.初始化特定的input类.各种参数计算函数. Input父类和其子类就是在做绑定事件,各种参数计算.整合.设置等返回自定义事件对象,交给识别器的相关对象使用. 一.Input父类 Input相当于一个抽象类,对象中总共有3个方法 1)handler(ev) 这相当于一个抽象方法,在上图中的6个子对象里,都会实现这个方法. ev是事件对象(不是自定义的那个),例如触屏事件中就是 TouchEvent. 2)init()与destro

underscore.js 分析6 map函数

作用:通过转换函数(iteratee迭代器)映射列表中的每个值产生价值的新数组.iteratee传递三个参数:value,然后是迭代 index. _.map([1, 2, 3], function(num){ return num * 3; }); => [3, 6, 9] _.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; }); => [3, 6, 9] _.map([[1, 2], [3, 4]],

underscore.js 分析 第四天

查看underscore包含多少属性和方法 通过阅读JavaScript 获取对象的键的数组 var a = _; var arr = Object.keys(a); console.log(arr); 在underscore1.9中包含了135个属性和方法.

HiShop2.x版本中的上传插件分析,得出所用的模板语言为Underscore.js 1.6.0且自己已修改

效果: 上传组件非常的酷,但是分析其使用JS写法使用了模板语言的,代码如下: <script type="text/j-template" id="tpl_popbox_ImgPicker_listItem"> <# _.each(dataset,function(url){ #> <li> <span class="img-list-overlay"><i class="img-l

underscore.js依赖库函数分析二(查找)

查找: 在underscore.js封装了对dom查找的操作,find()和filter()函数,find()函数的查找操作是返回首个与条件相符的元素值,filter()函数是找到与条件相符的所有元素,则返回的就是一个数组,如果没有找到符合条件,则返回一个空的数组.接下来一个个分析: find()函数: 该函数根据iterator迭代器中的自定义函数条件,在集合列表中查找符合条件的第一个元素,如果找到,则返回第一个元素,否则返回“undefined”. 实例: /** * Created by

underscore.js依赖库函数分析一

Underscore简介: underscore是一个非常简洁,实用的javascript库,和jQuery封装类型差不多,但underscore是backbone的依赖 库,想运行backbone就必须先引入underscore.js.“_”开头是依赖库underscore的一个特征,用于区分其他库函数名.“.” 以后就是函数的名称. Underscore函数: underscore中封装了60多个函数,供开发者使用,接下来一个个分析. 1.each()和map函数 underscore中ea

underscore.js 源码分析5 基础函数和each函数的使用

isArrayLike 检测是数组对象还是纯数组 var property = function(key) { return function(obj) { return obj == null ? void 0 : obj[key]; }; }; var getLength = property('length'); var isArrayLike = function(collection) { var length = getLength(collection); return typeo

Underscore.js 1.3.3 源码分析收藏

Underscore是一个提供许多函数编程功能的库,里面包含了你期待(在Prototype.js和Ruby中)的许多功能.但是没有扩展任何内置的Javascript对象,也就是说它没有扩展任何内置对象的原型.它被定位为jQuery和Backbone.js的基础层 源码注释转之网上他人之备注,特收藏以后方便阅读. // Underscore.js 1.3.3 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is