前言
此方法没有对其他方法进行引用
正文
源代码
/**
* Checks if `path` is a direct or inherited property of `object`.
*
* @since 4.0.0
* @category Object
* @param {Object} object The object to query.
* @param {string} key The key to check.
* @returns {boolean} Returns `true` if `key` exists, else `false`.
* @see has, hasPath, hasPathIn
* @example
*
* const object = create({ 'a': create({ 'b': 2 }) })
*
* hasIn(object, 'a')
* // => true
*
* hasIn(object, 'b')
* // => false
*/
function hasIn(object, key) {
return object != null && key in Object(object)
}
export default hasIn
复制代码
解析
参数
该方法接受两个参数:
第一个是一个对象;
第二个是对象中的属性。
返回值
该方法返回布尔值,true
或者 false
。
方法解析
该方法会对第一个传入的参数对象进行两项判断,
第一项判断该对象是否是空对象,若是空对象为 false
,负责为 true
;
第二项判断该对象中是否存在第二个参数这样的属性,该属性若存在于对象则为 true
,否则为 false
。
两项都为 true
时,向调用该方法的返回 true
,否则返回 false
。
注: 该方法只可检查传入对象的浅层属性,不可检查深层属性。
示例
const object = { a: 1, b: 2, c: { d: 3 } }
hasIn(object, 'a')
--> true
hasIn(object, 'd')
--> false
复制代码
总结
该方法用来检查一个对象中是否存在某个属性。