>  기사  >  웹 프론트엔드  >  js에서 객체를 전달하는 방법

js에서 객체를 전달하는 방법

(*-*)浩
(*-*)浩원래의
2019-05-18 17:39:533575검색

기사에서 언급했듯이: '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의 속성을 수정하면 실제로 공동으로 가리키는 개체의 이름 속성이 수정됩니다. 현재 메모리 영역에는 객체가 하나만 있기 때문입니다.

두 가지 예. o 주소는 새로 생성된 다른 개체를 가리킵니다. 이때 메모리에는 두 개의 개체가 있습니다. o가 가리키는 새 개체에 대한 변경 사항은 사람이 가리키는 이전 개체에 영향을 미치지 않습니다.

왜 'ECMAScript의 모든 함수의 매개변수는 값으로 전달된다'고 합니다.

기본적인 유형에 대해서는 이야기하지 않겠습니다.

참조 유형의 경우 매개변수 전달은 객체의 참조 복사본을 전달하는 것입니다. 이는 복사 후 새 주소를 전달하는 것과 같습니다. 이 복사 주소는 실제로 값 전달(공유 전달이라고도 함)로 이해될 수 있습니다.

객체를 사용하여 매개변수로 전달

객체를 매개변수로 전달할 때 매개변수의 순서를 고려할 필요가 없으므로 매우 유용합니다.

위 내용은 js에서 객체를 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.