yylib-quick-mobile
Version:
yylib-quick-mobile
76 lines (72 loc) • 2.11 kB
JavaScript
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var cloneDeep = require('lodash/cloneDeep');
var FunctionUtil = {
isFunction: function isFunction(source) {
return typeof source === "function";
},
forIn: function forIn(object, callback, args) {
var name,
i = 0,
length = object && object.length;
if (args) {
if (length == undefined) {
for (name in object) {
if (callback.apply(object[name], args) === false) {
break;
}
}
} else {
for (; i < length;) {
if (callback.apply(object[i++], args) === false) {
break;
}
}
}
} else {
if (length == undefined) {
for (name in object) {
if (callback.call(object[name], object[name], name) === false) {
break;
}
}
} else {
for (var value = object[0]; i < length && callback.call(value, value, i) !== false; value = object[++i]) {}
}
}
return object;
},
forEach: function forEach(object, callback, args) {
var name,
i = 0,
length = object && object.length;
if (args) {
if (length == undefined) {
for (name in object) {
if (callback.apply(object[name], args) === false) {
break;
}
}
} else {
for (; i < length;) {
if (callback.apply(object[i++], args) === false) {
break;
}
}
}
} else {
if (length == undefined) {
for (name in object) {
if (callback.call(object[name], _defineProperty({}, name, object[name])) === false) {
break;
}
}
} else {
for (var value = object[0]; i < length && callback.call(value, value, i) !== false; value = object[++i]) {}
}
}
return object;
},
deepClone: cloneDeep
};
module.exports = FunctionUtil;
;