ホームページ > ウェブフロントエンド > jsチュートリアル > Json object_json によるディープコピーメソッドの改良版

Json object_json によるディープコピーメソッドの改良版

WBOY
リリース: 2016-05-16 17:48:52
オリジナル
1250 人が閲覧しました

以前、Json オブジェクトのディープ コピー メソッドに関するブログ投稿を見ました。つまり、

コードをコピー コードは次のとおりです。

var obj = {
sayName: function() {
alert(this.name);
},
name:'京水源'
}; 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") : 値 )
});
newObj = JSON.parse(str, function (key, value) {
if (/ ^jsonFunction(.*)/.test(value)) {
var strFun = '(' value.replace(/^jsonFunction(.*)/, "function$1") ')'; eval(strFun);
戻り値;
}
var cloneObj=clone(obj); ;


まだ完全にテストされていないため、シュート レンガを歓迎します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート