blear.utils.object

1Introduction

2Example

var object = require('blear.utils.object');

3Static

3.1.keys(obj): keys

返回对象的静态键。

3.1.1obj

  • 类型:Object

3.1.2keys

  • 类型:Array

3.2.isPlain(obj): isPlain

判断对象是否为无属性对象。

3.2.1obj

  • 类型:Object
  • 说明:传入对象

3.2.2isPlain

  • 类型:Boolean

3.3.hasOwn(obj, key): hasOwn

判断对象是否有自身属性,即静态属性

3.3.1obj

  • 类型:Object
  • 说明:待判断对象

3.3.2key

  • 类型:String
  • 说明:字段名称

3.3.3hasOwn

  • 类型:Boolean

3.4.each(obj, callback(key, val)): undefined

对象的遍历。

3.4.1obj

  • 类型:Object

3.4.2callback

  • 类型:Function
  • 说明:返回 false 终止遍历
3.4.2.1callback: this
  • 类型:Object
  • 说明:指向当前传入的对象 obj
3.4.2.2callback: key
  • 类型:String
  • 说明:字段名称
3.4.2.3callback: val
  • 类型:*
  • 说明:对应字段的值

3.5.define(obj, key, [desc]): undefiend

定义一个对象的属性

object.define({}, 'a', {
    get: function () {
        return 1
    },
    set: function() {

    }
});

object.define({}, {
    a: {
        value: 2
    },
    b: {
        get: function() {
            return 3;
        }
    }
});

3.5.1obj

  • 类型:Object
  • 说明:待定义属性的对象。

3.5.2key

  • 类型:String | Object
  • 说明:如果是字符串,则必须传入 desc,作为该字段的描述,如果是对象,则批量定义对象属性

3.5.3desc

  • 类型:Object
  • 说明:对字段的描述

描述的值有:

3.5.3.1desc.writable
  • 类型:Boolean
  • 说明:是否可以被重写
3.5.3.2desc.enumerable
  • 类型:Boolean
  • 说明:是否可以被重写
3.5.3.3desc.configurable
  • 类型:Boolean
  • 说明:是否可以被配置,即是否可以被删除
3.5.3.4desc.get
  • 类型:Function
  • 说明:取值函数
3.5.3.5desc.set
  • 类型:Function
  • 说明:设值函数
3.5.3.6desc.value
  • 类型:Boolean
  • 说明:固定值

3.6.map(obj, callback(val, key)): mappedObj

对象包装,返回一个新的对象。

object.map({a: 1, b: 2}, function(val, key) {
    return val + val;
});
// => {a: 2, b: 4}

3.6.1obj

  • 类型:Object
  • 说明:待包装对象

3.6.2callback

  • 类型:Function
  • 说明:返回值作为该字段新值
3.6.2.1callback: this
  • 类型:Object
  • 说明:指向当前传入的对象
3.6.2.2callback: val
  • 类型:*
  • 说明:字段值
3.6.2.3callback: key
  • 类型:String
  • 说明:字段

3.6.3mappedObj

  • 类型:Object
  • 说明:包装后的对象

3.7.filter(obj, callback(val, key)): filteredObj

对象过滤,返回一个新对象。

3.7.1obj

  • 类型:Object

3.7.2callback

  • 类型:Function | Array
  • 说明:返回 true 则该字段被筛选。
3.7.2.1callback: this
  • 类型:Object
  • 说明:指向当前传入的对象
3.7.2.2callback: val
  • 类型:*
  • 说明:字段值
3.7.2.3callback: key
  • 类型:String
  • 说明:字段

3.7.3filteredObj

  • 类型:Object
  • 说明:过滤后的对象

3.8.assign([deep], source, target...): assignedSource

分配对象 target 上不为 undefined 的属性到 source 上,与 jQuery.extend 功能相同。

object.assign({a: 1}, {a: 2, b: 3}, {c: 4});
// => {a: 2, b: 3, c: 4}

3.8.1deep

  • 类型:Boolean
  • 说明:是否深度处理
  • 默认:false

3.8.2source

  • 类型:Object | Array

3.8.3target

  • 类型:*
  • 说明:target 可以为任意个,后面同名属性覆盖前面的

3.8.4assignedSource

  • 类型:Object | Array
  • 说明:指向 source 的对象

3.9.supply(deep, source, ...target): supplyedSource

分配属性,与 object.assign 功能相反。

object.supply({a: 1}, {a: 2, b: 3}, {c: 4});
// => {a: 1, b: 3, c: 4}

3.9.1deep

  • 类型:Boolean
  • 说明:是否深度处理
  • 默认:false

3.9.2source

  • 类型:Object | Array

3.9.3target

  • 类型:*
  • 说明:target 可以为任意个,后面同名属性不会覆盖前面的

3.9.4supplyedSource

  • 类型:Object | Array
  • 说明:指向 source 的对象

3.10.path(path): pathList

根据路径获取路径数组

object.path('a.b.c');
// => ["a", "b", "c"]

3.10.1path

  • 类型:String | Array
  • 说明:待处理字段字符串或数组,如果是数组则原样返回

3.10.2pathList

  • 类型:Array
  • 说明:字段路径数组

3.11.get(obj, path): val

根据路径返回属性值。

object.get({a: {b: 1}}, 'a.b');
// => 1

3.11.1obj

  • 类型:Object
  • 说明:待取值对象

3.11.2path

  • 类型:String | Array
  • 说明:路径字符串或数组

3.11.3val

  • 类型:*
  • 说明:返回路径对应属性值,如果路径不存在,返回 undefined

3.12.set(obj, path, val): parent

根据路径设置属性值。

object.set({a: {b: 1}}, 'a.b.c', 2);
// => {c: 2}

3.12.1obj

  • 类型:Object
  • 说明:待取值对象

3.12.2path

  • 类型:String | Array
  • 说明:路径字符串或数组

3.12.3val

  • 类型:*
  • 说明:被设置的值

3.12.4parent

  • 类型:Object | Array
  • 说明:返回被设置的父级对象。

4Dependencies

5Reference