码迷,mamicode.com
首页 > 其他好文 > 详细

underscore objects

时间:2015-08-17 21:45:25      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

_.function():返回对象所有的方法名

isEqual(); 

//测验:‘‘, false, 0, null, undefined, NaN, [], {}
_.isEmpty = function(obj) {
   //null, undefined if (obj == null) return true;
   //‘‘,[] if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; for (var key in obj) if (_.has(obj, key)) return false;
   //false,0,NaN return true; };
// 验证对象是否是一个DOM对象
    _.isElement = function(obj) {
     //为什么要写!! return !!(obj && obj.nodeType == 1); };
// 验证对象是否是一个数组类型, 优先调用宿主环境提供的isArray方法;isFunction;isString;isNumber,isDate,isRegExp;同样
    _.isArray = nativeIsArray ||
    function(obj) {
        return toString.call(obj) == ‘[object Array]‘;
    };
// 验证对象是否是一个复合数据类型的对象(即非基本数据类型String, Boolean, Number, null, undefined)
    // 如果基本数据类型通过new进行创建, 则也属于对象类型
    _.isObject = function(obj) {
        return obj === Object(obj);
    };
// 检查一个数据是否是一个arguments参数对象
    _.isArguments = function(obj) {
        return toString.call(obj) == ‘[object Arguments]‘;
    };
    // 验证isArguments函数, 如果运行环境无法正常验证arguments类型的数据, 则重新定义isArguments方法
//还可以这样... if(!_.isArguments(arguments)) { // 对于环境无法通过toString验证arguments类型的, 则通过调用arguments独有的callee方法来进行验证 _.isArguments = function(obj) { // callee是arguments的一个属性, 指向对arguments所属函数自身的引用
       //有这个属性,就是arguments return !!(obj && _.has(obj, ‘callee‘)); }; }
// 检查一个数字是否为有效数字且有效范围(Number类型, 值在负无穷大 - 正无穷大之间)
_.isFinite = function(obj) {
     //isFinite()是window函数 return _.isNumber(obj) && isFinite(obj); };
// 检查数据是否为NaN类型(所有数据中只有NaN与NaN不相等)
    _.isNaN = function(obj) {
        return obj !== obj;
    };
// 检查数据是否时Boolean类型
    _.isBoolean = function(obj) {
        // 支持字面量和对象形式的Boolean数据
        return obj === true || obj === false || toString.call(obj) == ‘[object Boolean]‘;
    };
 _.isNull = function(obj) {
        return obj === null;
    };
// 检查数据是否是Undefined(未定义的)值
    _.isUndefined = function(obj) {
        return obj === void 0;
    };

is函数看完。  

 

_.keys():获取对象的属性名,不包含原型链

_.has():对象本身是否包含指定的属性,不检查原型链,是hasOwnProperty的安全封装

_.values():返回对象的值,不包含原型链的值

_.uniq():去重;_union():去重,可以传入多个数组,返回一个数组;

_.extend():复制source对象中的所有属性覆盖到destination对象上,并且返回 destination 对象. 复制是按顺序的,

_.pick():过滤obj,返回指定key的对象

_.defaults():用defaults对象填充object中undefined属性。并且返回这个object。

_.clone():浅复制object,

_.tap(object, interceptor):用 object作为参数来调用函数interceptor,然后返回object。链式调用时很有用

_.chain([1,2,3,200])
  .filter(function(num) { return num % 2 == 0; })
  .tap(alert)
  .map(function(num) { return num * num })
  .value();

underscore objects

标签:

原文地址:http://www.cnblogs.com/wang-jing/p/4737611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!