1.基本对象的clone // 如果clone基本对象,直接赋值即可 var s = 'hello world'; var ss = s; console.log(ss); ss = "I'm changed"; console.log(s); console.log(ss); 2.数组的clone var a = [0,1,2,3]; var b = a.slice(0); a = [3,2,1,0]; console.log(a); console.log(b); 3.对象的clone let obj = {'a': 'a', 'b': 'b', 'c': 'c'}; let copy = Object.assign({}, obj); console.log(copy); 4.所有对象的clone function clone(obj) { var o; if (typeof obj == "object") { if (obj === null) { o = null; } else { if (obj instanceof Array) { o = []; for (var i = 0, len = obj.length; i < len; i++) { o.push(clone(obj[i])); } } else { o = {}; for (var j in obj) { o[j] = clone(obj[j]); } } } } else { o = obj; } return o; } // test var obj = {a: 'a', b: 'b', c: 'c'}; var copy = clone(obj); 参考文档: http://kingwell-leng.iteye.com/blog/1675694