ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
28 lines (24 loc) • 672 B
JavaScript
;
var allKeys = require('./allKeys.js');
var native = require('./internals/native.js');
var isNil = require('./isNil.js');
var conformsTo = function (object, source) {
var props = allKeys(source);
var length = props.length;
if (isNil(object)) {
return !length;
}
if (length === 0) {
return true;
}
for (var i = 0; i < length; i++) {
var key = props[i];
var predicate = source[key];
var value = object[key];
if ((value === native.nativeUndefined && !(key in object)) || !predicate(value)) {
return false;
}
}
return true;
};
module.exports = conformsTo;