Cạm bẫy Object lồng nhau thì clone bằng 2 cách trên là không thể - (Shallow copying)
consta={languages: {vi: 'Xin chào'}}letb={...a}// hoặc let b = Object.assign({}, a)b.languages.vi='Chào xin'console.log(b.languages.vi)// Chào xinconsole.log(a.languages.vi)// Chào xin
Deep copying
Cách khắc phục - (Deep copying)
consta={languages: {vi: 'Xin chào'}}letb=JSON.parse(JSON.stringify(a))// lodash cũng có một func hỗ trợ việc này! import { cloneDeep } from 'lodash';b.languages.vi='Chào xin'console.log(b.languages.vi)// Chào xinconsole.log(a.languages.vi)// Xin chào
0 nhận xét:
Post a Comment