ホームページ  >  記事  >  ウェブフロントエンド  >  jsでオブジェクトを渡す方法

jsでオブジェクトを渡す方法

(*-*)浩
(*-*)浩オリジナル
2019-05-18 17:39:533556ブラウズ

高さの記述: 「ECMAScript のすべての関数のパラメーターは値によって渡されます」

これは、ある変数から別の変数に値をコピーするのと似ています。

jsでオブジェクトを渡す方法

参照型の値も基本型と同じですか?

例 1:

var person  = {
    name : "leaf"
};
function obj(o){
    o.name = "kafu";
   return o;
}
var result = obj(person);
console.log(result.name);// kafu
console.log(person.name);// kafu

結果が参照型のパラメーターが参照によって渡されるように見えるのはなぜですか?

例 2:

var person = {
    name : "leaf"
};
function obj(o){
    o = {
       name : "kafu"
    };
    return o;
}
var result = obj(person);
console.log(result.name);// kafu
console.log(person.name);// leaf

違い:

例 1 では、person が obj() に渡されます。 , つまり、person オブジェクトの参照をコピーして o に渡します (アドレスとみなすことができます)。person と o は同時に同じオブジェクトを指します。o の属性を変更すると、実際には、そのオブジェクトの name 属性が変更されます。それらが共同で指すオブジェクト。現時点ではメモリ領域にオブジェクトが 1 つしかないためです。

2 つの例。o アドレスは、新しく作成された別のオブジェクトを指します。この時点で、メモリ内には 2 つのオブジェクトがあります。o が指す新しいオブジェクトに変更を加えても、古いオブジェクトには影響しません。人によって。

「ECMAScript のすべての関数のパラメーターは値によって渡される」と言われるのはなぜですか。

基本的なタイプについては説明しません。

参照型の場合、パラメーターの受け渡しは、受け渡すオブジェクトの参照コピーです。これは、コピー後に新しいアドレスを渡すことと同じであり、このコピー アドレスは、実際には値による受け渡し (共有受け渡しとも呼ばれます) として理解できます。

オブジェクトをパラメータとして渡す

オブジェクトをパラメータとして渡すとき、パラメータの順序を考慮する必要がないため、非常に便利です。

以上がjsでオブジェクトを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。