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);

你可能感兴趣的:(02Backbone系列)