var obj = {
name: function() {
alert('你好');
},
sex:'男'
};
function clone(obj) {
var str = JSON.stringify(obj, function (key, value) {
return (typeof value == 'function' ? value.toString().replace(/^function(.*)/g, "jsonFunction$1") : value);
});
return JSON.parse(str, function(key, value) {
if ( /^jsonFunction(.*)/ .test(value)) {
var strFun = value.replace( /^jsonFunction(.*)/ , "function$1");
value = eval('(' + strFun + ')');
}
return value;
});
}
console.log(clone(obj));
但情况是如下的时候,clone函数就不适用了,有待改进!!!
var obj = {
name: function() {
alert('你好');
},
sex:'男'
};
obj.name.pro='123';
var newObj=clone(obj);
console.log(newObj.name.pro);//undefined