jQuery での clone() と extend() の比較と使用

巴扎黑
リリース: 2017-06-25 10:03:01
オリジナル
1562 人が閲覧しました

jQueryの clone() メソッドは、

などの

object

をカスタマイズしたときに、別のobj2をカスタマイズしてobjの内容をコピーしたいときに、

 var obj2 = obj.clone();
ログイン後にコピー

を使用します。そのobjを無視したことがはっきりとわかりますは単なる オブジェクト であり、 clone() メソッドはありません。したがって、これは明らかに間違ったデモンストレーションです。ただし、jQuery に付属の clone() メソッドは、今度は、あるオブジェクトを別のオブジェクトにコピーするという私のニーズを満たすことができなくなりました。 clone(obj); 浅いレベルのコピー: 非基本

データ型の場合
、クローン作成後、結果として 2 つのポインターは同じメモリ空間を指すため、一方のオブジェクトが操作されると、もう一方のオブジェクトの内容も変更されます。

ディープコピー: コピーと同様に、指定されたオブジェクトのすべての プロパティとメソッド

を、新しいオブジェクトが指すオブジェクトにコピーします。これにより、新しいオブジェクトへの変更やその他の操作が元のオブジェクトに影響を与えなくなります。 。

以下にディープコピーメソッドを示します:

var cloneObj = function(obj){
var str, newobj = obj.constructor === Array ? [] : {};
if(typeof obj !== 'object'&& typeof obj !=='function'){
    return;
}else {
    for(var i in obj){
        newobj[i] = typeof obj[i] === 'object' ?
            cloneObj(obj[i]) : obj[i];
    }
}
return newobj;
};

//克隆
var obj2=clone(obj);
ログイン後にコピー
内部のパラメータを変更したい場合は、次のメソッドを使用できます

obj2.title.text = "XXX";
ログイン後にコピー
extend():

extend() メソッドを使用します: 拡張とは、次のことができることを意味します1 つ以上のプロパティをオブジェクトに拡張して

、ユニオン効果を形成します。ここで空のオブジェクトについて話している場合、オブジェクトに拡張することはクローン作成と同等です

$.extend(true,obj,{});
ログイン後にコピー

ユニオン効果を取得するコードは次のとおりです

 obj2 = $.extend(true,obj,obj2);
ログイン後にコピー
特定のパラメータを上書きしたい場合は、clone() と同じ上書き方法を選択するか、

obj2 = $.extend(true,obj,obj2);

の前に次のコードを追加することを選択できます。 :

りー

以上がjQuery での clone() と extend() の比較と使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!