ヒープとスタック|コピー先の深さ

JS変数の型が分かれています

値タイプ(基本タイプ):ヌル未定義の数値文字列のブール

リファレンスタイプ:

配列オブジェクト

JSでは、各データ・メモリ空間を必要とします。メモリ空間は、の2種類に分けられているスタックメモリ(スタック)とヒープメモリ(ヒープ)

スタックメモリは、一般的に、基本的なデータ型を格納しています

= 1があります。

次のようなデータ構造に似たスタックメモリの使用スタックデータ構造に格納されたデータ、LIFOの原則。

通常、参照データ型を格納するメモリをヒープ

VaRのB = {XI:20}

 

シャローコピー

シャローコピーは一つだけのコピーです

関数をshallowClone(ソース){

VAR対象= {};
(VAR Iソースで){ための
IF(source.hasOwnProperty(I)){
ターゲット[i]は=源[I]。
}
}
戻りターゲット;
}

ディープコピー
無制限のレベルはコピー

JSON深いコピー

関数cloneJSON(ソース){

    JSON.parse(JSON.stringify(ソース))を返します。

}

 

= +ディープコピーシャローコピーを再帰的に  

短所:通常のオブジェクト、FUNCなどに対処していないため

関数クローン(ソース){

    VAR対象= {};

    (ソース内のvar I){用

        IF(source.hasOwnProperty(I)){

            IF(typeof演算源[I] === 'オブジェクト'){

                [I] =クローン(ソース[I])を標的と; //はなお

            }他{

                標的[I] =源[I]。

            }

        }

    }

 

    ターゲットを返します。

}

 

 

 

関数 cloneJSONソース{ 戻りJSON (.parse JSON ).stringify(ソース)。}

おすすめ

転載: www.cnblogs.com/hanhaiyuntao/p/11388173.html