ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
29 lines (25 loc) • 801 B
JavaScript
;
var eq = require('./eq.js');
var native = require('./internals/native.js');
function shallowEqual(objA, objB, strictCheck) {
if (strictCheck === void 0) { strictCheck = true; }
if (eq(objA, objB, strictCheck)) {
return true;
}
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
for (var i = 0; i < keysA.length; i++) {
var key = keysA[i];
if (!native.objectProtoHasOwnProperty.call(objB, key) || !eq(objA[key], objB[key], strictCheck)) {
return false;
}
}
return true;
}
module.exports = shallowEqual;