underscore chain】的更多相关文章

//可以在面向对象或者函数的风格下使用Underscore_.map([1, 2, 3], function(n){ return n * 2; }); //一般习惯用这种 _([1, 2, 3]).map(function(n){ return n * 2; }); _.chain(obj):在封装对象上调用方法,会返回封装对象本身,原始值存放在_wrapped属性中: _.value():获取封装对象的值: 对一个对象使用 chain 方法, 会把这个对象封装并 让以后每次方法的调用结束后都…
前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度.十一月,多事之秋,最近好多事情搞的楼主心力憔悴,身心俱疲,也想尽快把这个系列完结掉,也好了却一件心事. 本文预计是解读系列的倒数第二篇,最后一篇那么显然就是大总结了.楼主的 Underscore 系列解读完整版地址 https://github.com/hanzichi/underscore-analysis 常规调用 之前写的文章…
转载出自http://www.cnblogs.com/human/p/3273616.html (function() { // 创建一个全局对象, 在浏览器中表示为window对象, 在Node.js中表示global对象 var root = this; // 保存"_"(下划线变量)被覆盖之前的值 // 如果出现命名冲突或考虑到规范, 可通过_.noConflict()方法恢复"_"被Underscore占用之前的值, 并返回Underscore对象以便重新命…
公司产品集成了对Underscore.js,所以需要对这个库有一定的了解.通过查阅资料,发现这个库主是对Array和JSON的处理支持.通过Underscore.js库,可以方便的对Array和JSON数据进行操作.下面是一些我学习中做测试写的示例,po在这里,供将来复习. var $ = lib.c.$; var _ = lib.Underscore.require(); /* 这个函数演示了map的使用方法 map接受JSON和Array map函数第一个参数是一个Array/JSON(ob…
Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文称“Underscore对象”).生成一个Underscore对象: <script> var jsData = {     name : 'data' } // 通过_()方法将对象创建为一个Underscore对象 var underscoreData = _(jsData);   //_就是Underscore构造函数的标识 // underscoreDat…
1. Underscore对象封装 Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文中称"Underscore对象"). 你可以通过调用一个Underscore对象的value()方法来获取原生的JavaScript数据,例如:  window.onload =   function () {          // 定义一个JavaScript内置对象            var jsData = …
前言 underscore虽然有点过时,这些年要慢慢被Lodash给淘汰或合并. 但通过看它的源码,还是能学到一个库的封装和扩展方式. 第一步,不污染全局环境. ES5中的JS作用域是函数作用域. 函数内部可以直接读取全局变量,当然函数外部无法读取函数内的局部变量. 所以,我们在匿名函数里啪啪啪写代码,妈妈再也不会担心修改到全局变量. (funtion(){ var _ = function(obj) { return new wrapper(obj); }; var wrapper = fun…
//reduce是汇总 递归 var perDesc=[ {name: "haha", "email": "haha@email.com"}, {"height":173,"weight":100}, {"gender":"female","phone":"13888888888"} ] var aa=_.reduce(perD…
(function() { // 创建一个全局对象, 在浏览器中表示为window对象, 在Node.js中表示global对象 var root = this; // 保存"_"(下划线变量)被覆盖之前的值 // 如果出现命名冲突或考虑到规范, 可通过_.noConflict()方法恢复"_"被Underscore占用之前的值, 并返回Underscore对象以便重新命名 var previousUnderscore = root._; // 创建一个空的对象常量…
// 1. 不污染全局环境 (function() { // 2. 保留之前同名变量 var previousUnderscore = window._; var _ = function(obj) { return new wrapper(obj); }; // 模块化 if (typeof define === 'function' && define.amd) { define('underscore', [], function() { return _; }); } else i…
Underscore提供的100多个函数,主要涉及对Collection.Object.Array.Function的操作: Collections(集合) each, map, reduce, reduceRight, find, filter, reject, all, any, include, invoke,pluck, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, size Arrays(数组) first, ini…
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库作为自己的工具库.除了可以在浏览器环境使用,Underscore.js还可以用于Node.js. Underscore.js定义了一个下划线(_)对象,函数库的所有方法都属于这个对象.这些方法大致上可以分成:集合(collection).数组(array).函数(function).对象(object)和…
underscore 集合函数(数组或对象) _.each(list, iteratee, [context]); _.map(list, iteratee, [context]); _.reduce(list, iteratee, [memo], [context]); //foldl _.reduceRight(list, iteratee, [memo], [context]); //foldr _.find(list, predicate, [context]); //detect _.…
Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它弥补了部分jQuery没有实现的功能,同时又是Backbone.js必不可少的部分. 中文API:http://www.css88.com/doc/underscore/ 英文API: http://underscorejs.org/ GitHub仓库: https://github.com/jashkenas/underscore Underscore没有对原生…
留存root // Establish the root object, `window` (`self`) in the browser, `global` // on the server, or `this` in some virtual machines. We use `self` // instead of `window` for `WebWorker` support. var root = typeof self == 'object' && self.self ===…
Collection Functions (Arrays or Objects) each         _.each(list, iterator, [context]) 遍历list中的所有元素,如果传递了context参数,则把iterator绑定到context对象上.iterator的参数是 (value, key, list)).返回list以方便链式调用. _.each([1, 2, 3], alert); => alerts each number in turn... map…
1:函数式编程初探 2:if(obj.length === +obj.length)的判断 3:JS对象属性用中括号表示的优点在于可以用变量表示属性 4:callee,caller---JS高级程序设计P114-115 5:函数的length属性是希望接受的命名参数的个数,对象本身是没有length属性的 6:call与apply---JS高级P116-117 ①传递参数②扩充作用域 7:in运算符 判断对象是否为数组/对象的元素/属性: 格式:(变量 in 对象), 当“对象”为数组时,“变量…
上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); var self = baseCreate(sourceFunc.prot…
看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-analysis/blob/master/underscore-1.8.3.js/src/underscore-1.8.3.js 一.架构的实现 1.1:架构 (function(){ var _={}; this._=_; }.call(this)); 1.2:引入exports判断,如果不支持exp…
一.理清概念 1.Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率,Underscore还可以被使用在Node.js运行环境.从API中,你已经可以看出,Underscore没有任何复杂的结构和流程,它仅仅提供了一系列常用的函数.如果你将API中的方法从头至尾用一遍,你就会对它非常了解. 2.Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文中称“Underscore对象”).可以…
// Underscore.js 1.9.1// http://underscorejs.org// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors// Underscore may be freely distributed under the MIT license. (function() { // Baseline setup // -------------- // E…
概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以就了结研究underscore源码这一心愿吧. underscore.js源码研究(1) underscore.js源码研究(2) underscore.js源码研究(3) underscore.js源码研究(4) underscore.js源码研究(5) underscore.js源码研究(6)…
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率.将它单独运用到任何一个页面.(另外,Underscore还可以被使用在Node.js运行环境.) 在学习Underscore之前,你应该先保存它的API地址,因为你将在以后经常访问它:Underscore.js 1.7.0 中文文档(http://www.css88.com/doc/underscore/) 常用方法介绍:http://www.css88.com/archives/4784 从API中,你已经可以…
一直想针对一个框架的源码好好的学习一下编程思想和技巧,提高一下自己的水平,但是看过一些框架的源码,都感觉看的莫名其妙,看不太懂,最后找到这个underscore.js由于这个比较简短,一千多行,而且读起来容易一些,所以就决定是它了,那废话不多说开始我们的源码学习. underscore.js源码GitHub地址: https://github.com/jashkenas/underscore/blob/master/underscore.js   本文解析的underscore.js版本是1.8…
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率.(Underscore还可以被使用在Node.js运行环境.) 在学习Underscore之前,你应该先保存它的API地址,因为你将在以后经常访问它: http://documentcloud.github.com/underscore/ 从API中,你已经可以看出,Underscore没有任何复杂的结构和流程,它仅仅提供了一系列常用的函数.如果你将API中的方法从头至尾用一遍,你就会对它非常了解. 尽管如此,但…
前言 从其他语言转向Javascript时,通常都会遇到一些困惑性问题.比如,Java中的HashMap在Javascript中如何实现?Javascript面向对象式编程如何实现继承?如何实现通用的iterator对集合对象做遍历?如何对Array实现快速排序?…. 如果你真的可以自己实现这些功能,那么你的Javascript基础很扎实的!我很佩服你!但对于大部分人来说,这些基础功能应该是由底层API支持的,就像JDK一样.Underscore为我们提供了这样的一个实用工具包,而且它真的很实用…
Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:“如果我面对一个空白的 HTML 页面,并希望立即开始工作,我需要什么?” 他弥补了 jQuery 没有实现的功能,同时又是Backbone 必不可少的部分. Underscore 提供了100多个函数,包括常用的:map.filter.invoke — 当然还有更多专业的辅助函数,如:函数绑定.JavaScript 模板功能.创建…
这篇文章主要介绍了深入解析Backbone.js框架的依赖库Underscore.js的作用,用过Node.js的朋友对Underscore一定不会陌生:)需要的朋友可以参考下 backbone必须依赖underscore.js才能够使用,它必须通过underscore中的函数来完成访问页面元素.处理元素的基本操作. 注:backbone可以很好的与其它js库一起工作,所以说它是一个库,而不是框架. Underscore并没有对原生对象进行扩展,而是调用_()方法进行封装,一旦封装完成,js对象…
在一个多月的毕业设计之后,我再次开始了Underscore的源码阅读学习,断断续续也写了好些篇文章了,基本把一些比较重要的或者个人认为有营养的函数都解读了一遍,所以现在学习一下Underscore的整体架构.我相信很多程序员都会有一个梦想,那就是可以写一个自己的模块或者工具库,那么我们现在就来学习一下如果我们要写一个自己的Underscore,我们该怎么写? 大致的阅读了一下Underscore源码,可以发现其基本架构如下: 1 定义变量 在ES6之前,JavaScript开发者是无法通过let…
// Underscore.js 1.3.3 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the MIT license. // Portions of Underscore are inspired or borrowed from Prototype, // Oliver Steele's Functional, and John Resig'…