1Introduction
- description:object utils
- author:云淡然
- create:2016年11月26日15:47:34
- update:2016年11月26日15:47:34
- github:https://github.com/blearjs/blear.utils.object
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
- 说明:返回被设置的父级对象。