|
|
@ -3,27 +3,26 @@ |
|
|
|
* Create By GUY 2014\11\17 |
|
|
|
* Create By GUY 2014\11\17 |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
!(function (undefined) { |
|
|
|
var traverse = function (func, context) { |
|
|
|
var traverse = function (func, context) { |
|
|
|
|
|
|
|
return function (value, key, obj) { |
|
|
|
return function (value, key, obj) { |
|
|
|
return func.call(context, key, value, obj); |
|
|
|
return func.call(context, key, value, obj); |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
var _apply = function (name) { |
|
|
|
var _apply = function (name) { |
|
|
|
return function () { |
|
|
|
return function () { |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
var _applyFunc = function (name) { |
|
|
|
var _applyFunc = function (name) { |
|
|
|
return function () { |
|
|
|
return function () { |
|
|
|
var args = Array.prototype.slice.call(arguments, 0); |
|
|
|
var args = Array.prototype.slice.call(arguments, 0); |
|
|
|
args[1] = BI._.isFunction(args[1]) ? traverse(args[1], args[2]) : args[1]; |
|
|
|
args[1] = BI._.isFunction(args[1]) ? traverse(args[1], args[2]) : args[1]; |
|
|
|
return BI._[name].apply(BI._, args); |
|
|
|
return BI._[name].apply(BI._, args); |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// Utility
|
|
|
|
// Utility
|
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
assert: function (v, is) { |
|
|
|
assert: function (v, is) { |
|
|
|
if (this.isFunction(is)) { |
|
|
|
if (this.isFunction(is)) { |
|
|
|
if (!is(v)) { |
|
|
|
if (!is(v)) { |
|
|
@ -143,21 +142,21 @@ |
|
|
|
return wi.element; |
|
|
|
return wi.element; |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 集合相关方法
|
|
|
|
// 集合相关方法
|
|
|
|
BI._.each(["where", "findWhere", "invoke", "pluck", "shuffle", "sample", "toArray", "size"], function (name) { |
|
|
|
BI._.each(["where", "findWhere", "invoke", "pluck", "shuffle", "sample", "toArray", "size"], function (name) { |
|
|
|
BI[name] = _apply(name); |
|
|
|
BI[name] = _apply(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.each(["get", "set", "each", "map", "reduce", "reduceRight", "find", "filter", "reject", "every", "all", "some", "any", "max", "min", |
|
|
|
BI._.each(["get", "set", "each", "map", "reduce", "reduceRight", "find", "filter", "reject", "every", "all", "some", "any", "max", "min", |
|
|
|
"sortBy", "groupBy", "indexBy", "countBy", "partition", "clamp"], function (name) { |
|
|
|
"sortBy", "groupBy", "indexBy", "countBy", "partition", "clamp"], function (name) { |
|
|
|
if (name === "any") { |
|
|
|
if (name === "any") { |
|
|
|
BI[name] = _applyFunc("some"); |
|
|
|
BI[name] = _applyFunc("some"); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
// 数数
|
|
|
|
// 数数
|
|
|
|
count: function (from, to, predicate) { |
|
|
|
count: function (from, to, predicate) { |
|
|
|
var t; |
|
|
|
var t; |
|
|
@ -344,17 +343,17 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
return str; |
|
|
|
return str; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 数组相关的方法
|
|
|
|
// 数组相关的方法
|
|
|
|
BI._.each(["first", "initial", "last", "rest", "compact", "flatten", "without", "union", "intersection", |
|
|
|
BI._.each(["first", "initial", "last", "rest", "compact", "flatten", "without", "union", "intersection", |
|
|
|
"difference", "zip", "unzip", "object", "indexOf", "lastIndexOf", "sortedIndex", "range", "take", "takeRight", "uniqBy"], function (name) { |
|
|
|
"difference", "zip", "unzip", "object", "indexOf", "lastIndexOf", "sortedIndex", "range", "take", "takeRight", "uniqBy"], function (name) { |
|
|
|
BI[name] = _apply(name); |
|
|
|
BI[name] = _apply(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.each(["findIndex", "findLastIndex"], function (name) { |
|
|
|
BI._.each(["findIndex", "findLastIndex"], function (name) { |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
// 构建一个长度为length的数组
|
|
|
|
// 构建一个长度为length的数组
|
|
|
|
makeArray: function (length, value) { |
|
|
|
makeArray: function (length, value) { |
|
|
|
var res = []; |
|
|
|
var res = []; |
|
|
@ -409,19 +408,19 @@ |
|
|
|
iteratee && (iteratee = traverse(iteratee, context)); |
|
|
|
iteratee && (iteratee = traverse(iteratee, context)); |
|
|
|
return BI._.uniq.call(BI._, array, isSorted, iteratee, context); |
|
|
|
return BI._.uniq.call(BI._, array, isSorted, iteratee, context); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 对象相关方法
|
|
|
|
// 对象相关方法
|
|
|
|
BI._.each(["keys", "allKeys", "values", "pairs", "invert", "create", "functions", "extend", "extendOwn", |
|
|
|
BI._.each(["keys", "allKeys", "values", "pairs", "invert", "create", "functions", "extend", "extendOwn", |
|
|
|
"defaults", "clone", "property", "propertyOf", "matcher", "isEqual", "isMatch", "isEmpty", |
|
|
|
"defaults", "clone", "property", "propertyOf", "matcher", "isEqual", "isMatch", "isEmpty", |
|
|
|
"isElement", "isNumber", "isString", "isArray", "isObject", "isPlainObject", "isArguments", "isFunction", "isFinite", |
|
|
|
"isElement", "isNumber", "isString", "isArray", "isObject", "isPlainObject", "isArguments", "isFunction", "isFinite", |
|
|
|
"isBoolean", "isDate", "isRegExp", "isError", "isNaN", "isUndefined", "zipObject", "cloneDeep"], function (name) { |
|
|
|
"isBoolean", "isDate", "isRegExp", "isError", "isNaN", "isUndefined", "zipObject", "cloneDeep"], function (name) { |
|
|
|
BI[name] = _apply(name); |
|
|
|
BI[name] = _apply(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.each(["mapObject", "findKey", "pick", "omit", "tap"], function (name) { |
|
|
|
BI._.each(["mapObject", "findKey", "pick", "omit", "tap"], function (name) { |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
BI[name] = _applyFunc(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
|
|
|
|
|
|
|
|
inherit: function (sp, overrides) { |
|
|
|
inherit: function (sp, overrides) { |
|
|
|
var sb = function () { |
|
|
|
var sb = function () { |
|
|
@ -529,10 +528,10 @@ |
|
|
|
isPromise: function (obj) { |
|
|
|
isPromise: function (obj) { |
|
|
|
return !!obj && (BI.isObject(obj) || BI.isFunction(obj)) && BI.isFunction(obj.then); |
|
|
|
return !!obj && (BI.isObject(obj) || BI.isFunction(obj)) && BI.isFunction(obj.then); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// deep方法
|
|
|
|
// deep方法
|
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
deepClone: BI._.cloneDeep, |
|
|
|
deepClone: BI._.cloneDeep, |
|
|
|
deepExtend: BI._.merge, |
|
|
|
deepExtend: BI._.merge, |
|
|
|
|
|
|
|
|
|
|
@ -648,23 +647,23 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 通用方法
|
|
|
|
// 通用方法
|
|
|
|
BI._.each(["uniqueId", "result", "chain", "iteratee", "escape", "unescape", "before", "after", "chunk"], function (name) { |
|
|
|
BI._.each(["uniqueId", "result", "chain", "iteratee", "escape", "unescape", "before", "after", "chunk"], function (name) { |
|
|
|
BI[name] = function () { |
|
|
|
BI[name] = function () { |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
}; |
|
|
|
}; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 事件相关方法
|
|
|
|
// 事件相关方法
|
|
|
|
BI._.each(["bind", "once", "partial", "debounce", "throttle", "delay", "defer", "wrap"], function (name) { |
|
|
|
BI._.each(["bind", "once", "partial", "debounce", "throttle", "delay", "defer", "wrap"], function (name) { |
|
|
|
BI[name] = function () { |
|
|
|
BI[name] = function () { |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
return BI._[name].apply(BI._, arguments); |
|
|
|
}; |
|
|
|
}; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
nextTick: (function () { |
|
|
|
nextTick: (function () { |
|
|
|
var callbacks = []; |
|
|
|
var callbacks = []; |
|
|
|
var pending = false; |
|
|
|
var pending = false; |
|
|
@ -732,13 +731,13 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
})() |
|
|
|
})() |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 数字相关方法
|
|
|
|
// 数字相关方法
|
|
|
|
BI._.each(["random"], function (name) { |
|
|
|
BI._.each(["random"], function (name) { |
|
|
|
BI[name] = _apply(name); |
|
|
|
BI[name] = _apply(name); |
|
|
|
}); |
|
|
|
}); |
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
|
|
|
|
|
|
|
|
parseInt: function (number) { |
|
|
|
parseInt: function (number) { |
|
|
|
var radix = 10; |
|
|
|
var radix = 10; |
|
|
@ -838,10 +837,10 @@ |
|
|
|
var sum = BI.sum(array, iteratee, context); |
|
|
|
var sum = BI.sum(array, iteratee, context); |
|
|
|
return sum / array.length; |
|
|
|
return sum / array.length; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 字符串相关方法
|
|
|
|
// 字符串相关方法
|
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
trim: function () { |
|
|
|
trim: function () { |
|
|
|
return BI._.trim.apply(BI._, arguments); |
|
|
|
return BI._.trim.apply(BI._, arguments); |
|
|
|
}, |
|
|
|
}, |
|
|
@ -966,10 +965,10 @@ |
|
|
|
return args[i]; |
|
|
|
return args[i]; |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// 日期相关方法
|
|
|
|
// 日期相关方法
|
|
|
|
BI._.extend(BI, { |
|
|
|
BI._.extend(BI, { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* 是否是闰年 |
|
|
|
* 是否是闰年 |
|
|
|
* @param year |
|
|
|
* @param year |
|
|
@ -1276,5 +1275,7 @@ |
|
|
|
return dt.getTime(); |
|
|
|
return dt.getTime(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
|
|
// TODO: 暂时先直接export全部,下一步拆function
|
|
|
|
|
|
|
|
export default BI; |