Json object_json을 통한 딥 카피 방식 개선 버전

WBOY
풀어 주다: 2016-05-16 17:48:52
원래의
1217명이 탐색했습니다.

이전에 Json 객체의 Deep Copy 방식, 즉

코드 복사에 대한 블로그 게시물을 본 적이 있습니다. 코드는 다음과 같습니다.

var obj = {
sayName: function() {
alert(this.name)
},
name:'Jingshuiyuan'
}; var cloneObj=JSON.parse (JSON.stringify(obj));cloneObj.sayName();

그러나 이 방법으로는 속성 값을 함수의 속성으로 복사할 수 없으므로 개선된 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var obj = {
sayName: function() {
alert(this.name)
},
name:'Still Water Abyss'
}; clone(){
var str,newObj;
str= JSON .stringify(obj, function(key, value) {
return (typeof value == 'function' ? value.toString().replace (/^function(.*)/g, "jsonFunction$1") : value );
})
newObj = JSON.parse(str, function (key, value) {
if (/ ^jsonFunction(.*)/.test(value)) {
var strFun = '(' value.replace(/^jsonFunction(.*)/, "function$1") ')'
value = eval(strFun);
}
return value;
});
return newObj;
var cloneObj=clone(obj); ;


아직 완전히 테스트되지 않았으므로 Shoot bricks를 환영합니다!
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!