高さの記述: 「ECMAScript のすべての関数のパラメーターは値によって渡されます」。
これは、ある変数から別の変数に値をコピーするのと似ています。
参照型の値も基本型と同じですか?
例 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 サイトの他の関連記事を参照してください。