var clone = function (obj) {
if(obj === null) return null
if(typeof obj !== 'object') return obj;
if(obj.constructor===Date) return new Date(obj);
if(obj.constructor === RegExp) return new RegExp(obj);
var newObj = new obj.constructor (); //保持继承链
for (var key in obj) {
if (obj.hasOwnProperty(key)) { //不遍历其原型链上的属性
var val = obj[key];
newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; // 使用arguments.callee解除与函数名的耦合
}
}
return newObj;
};
如果只是浅层次的对象 如:
var fence_form = {
add_name: "", //名称
point: "", //点
radius: "", //半径
time: [], //有效时间
merArr: []
}
则用下面这个方法比较简单 :
var a = {name:'wanger'}
var b = Object.assign({}, a)
a===b // false