前言
此方法沒有對其他方法進行引用
正文
原始碼
/**
* 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
複製程式碼
總結
該方法用來檢查一個物件中是否存在某個屬性。