Skip to content

Commit 616bde0

Browse files
committed
releases 3.7.2
1 parent 59469d2 commit 616bde0

File tree

5 files changed

+29
-12
lines changed

5 files changed

+29
-12
lines changed

func/helperCheckCopyKey.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
function helperCheckCopyKey (key, val) {
2-
return key !== '__proto__' && key !== 'constructor' && (!val || typeof val !== 'function')
1+
function helperCheckCopyKey (key) {
2+
return key !== '__proto__' && key !== 'constructor'
33
}
44

55
module.exports = helperCheckCopyKey

func/merge.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
var isArray = require('./isArray')
22
var isPlainObject = require('./isPlainObject')
3+
var isFunction = require('./isFunction')
34
var each = require('./each')
45

56
var helperCheckCopyKey = require('./helperCheckCopyKey')
67

78
function handleMerge (target, source) {
89
if ((isPlainObject(target) && isPlainObject(source)) || (isArray(target) && isArray(source))) {
910
each(source, function (val, key) {
10-
if (helperCheckCopyKey(key, val)) {
11-
target[key] = handleMerge(target[key], val)
11+
if (helperCheckCopyKey(key)) {
12+
target[key] = isFunction(source) ? val : handleMerge(target[key], val)
1213
}
1314
})
1415
return target

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "xe-utils",
3-
"version": "3.7.1",
3+
"version": "3.7.2",
44
"description": "JavaScript 函数库、工具类",
55
"main": "index.js",
66
"unpkg": "dist/xe-utils.umd.min.js",

test/base.test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2377,6 +2377,13 @@ describe('Base functions', () => {
23772377
expect(
23782378
obj4.a3 !== 1
23792379
).toEqual(true)
2380+
2381+
const obj5 = {}
2382+
const val5 = () => {}
2383+
XEUtils.set(obj5, 'aa', val5)
2384+
expect(
2385+
obj5.aa === val5
2386+
).toEqual(true)
23802387
})
23812388

23822389
test('groupBy()', () => {

test/object.test.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
const XEUtils = require('../func')
22

33
test('assign()', () => {
4-
let obj1 = { bb: { gg: 1 } }
5-
let obj2 = XEUtils.assign({}, obj1, { a: 11 })
4+
const obj1 = { bb: { gg: 1 } }
5+
const obj2 = XEUtils.assign({}, obj1, { a: 11 })
66
expect(
77
obj1 === obj2
88
).toEqual(false)
99
expect(
1010
obj1.bb === obj2.bb
1111
).toEqual(true)
12-
let obj3 = { bb: { b: 11 } }
13-
let obj4 = XEUtils.assign(obj3, { a: 11 })
12+
const obj3 = { bb: { b: 11 } }
13+
const obj4 = XEUtils.assign(obj3, { a: 11 })
1414
expect(
1515
obj3.bb === obj4.bb
1616
).toEqual(true)
1717
expect(
1818
obj3.bb === obj4.bb
1919
).toEqual(true)
20-
let arr1 = [11, 22]
20+
const arr1 = [11, 22]
2121
expect(
2222
XEUtils.assign(arr1, [44, 11, 55])
2323
).toEqual([44, 11, 55])
@@ -36,7 +36,7 @@ test('objectMap()', () => {
3636
})
3737

3838
test('objectEach()', () => {
39-
let rest = []
39+
const rest = []
4040
XEUtils.each({ a: 11, b: 22, c: 33, d: 44 }, (item, key, obj) => {
4141
rest.push([item, key])
4242
})
@@ -46,7 +46,7 @@ test('objectEach()', () => {
4646
})
4747

4848
test('lastObjectEach()', () => {
49-
let rest = []
49+
const rest = []
5050
XEUtils.lastObjectEach({ a: 11, b: 22, c: 33, d: 44 }, (item, key, obj) => {
5151
rest.push([item, key])
5252
})
@@ -112,4 +112,13 @@ test('merge()', () => {
112112
expect(
113113
obj2
114114
).toEqual({ a: { a1: 11, a2: { bb1: 44, bdd: 55 }, a3: 44 }, bb: [{ vv: 11, cc: 11 }], f: 33, v: [88] })
115+
116+
const obj3 = { b: [{}] }
117+
const val3 = { a: () => {} }
118+
expect(
119+
XEUtils.merge(obj3, val3).a === val3.a
120+
).toEqual(true)
121+
expect(
122+
XEUtils.merge(obj3, val3).b === obj3.b
123+
).toEqual(true)
115124
})

0 commit comments

Comments
 (0)