02Backbone系列

Underscore 对象封装

  1. 通过_(obj)方式,封装成underscore对象,此后可以方便的使用原型中的方法
  2. 通过_(obj).value()依旧能够获得原生数据

优先调用javascript1.6内置方法

underscore自动完成,1.6版本是05年更新的一个版本

改变命名空间

释放_的使用权利

  1. var us = _.onConflict()

链式操作

// 使用
var arr = [10,20,30];
_(arr)
    .chain()
    .map(function(item){return item++;})
    .first()
    .value();
// underscore 中该方法的关键函数
var result = function (obj,chain) {
    return chain ? _(obj).chain() : obj;
}

扩展Underscore

下列方法,将追加到underscore的原型对象上

_.mixin({
    method1: function (object) {
        // tode
    },
    method2: function (arr) {
        // todo
    }
});

遍历集合

underscore中这两个方法item是函数的第一个参数

  1. _(arr).map
  2. _(arr).each()

函数节流

  1. _(function).debounce()关注函数执行的间隔
  2. _(function).throttle()关注函数执行的频率

输入提示框

// 当 200ms 内 query 方法没有被执行过,再触发时就会执行
var query = _(function () {
    // 查询操作
}).debounce(200);
$('#search').on('keypress',query);;

边滚动边加载

// 每 500ms 执行一次
var query = _(function() {  
    // 在这里进行查询操作  
}).throttle(500);  
$(window).bind('scroll', query);  

模板解析

模板解析一般分成两种

// 一次性模板,数据匹配
var html = _.template(tpl,data);
divEle.html(html);

// 模板相同,数据不同
var render = _.template(tpl);
var html = render(data);
divEle.html(html);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 4,952评论 0 0
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 8,966评论 1 19
  • 薛兆丰
    盈持善为本阅读 1,427评论 0 0
  • 6原来一个人 爸妈走后,我曾无数想过这篇文章的开头,有太多想说的,来不及说,已经说了,没有说的,不愿说的包含在里头...
    街亭卢旺达阅读 1,697评论 0 2
  • 本人参与#漫步青春#征文活动,作者:孙玄玄,本人承诺,文章内容为原创,且未在其他平台发布。《慢》 古老的歌声传来 ...
    别跟小孩讲道理阅读 1,166评论 0 0

友情链接更多精彩内容