> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 참조에 의한 전달과 값에 의한 전달: 함수 호출에서 객체와 프리미티브가 어떻게 동작합니까?

JavaScript의 참조에 의한 전달과 값에 의한 전달: 함수 호출에서 객체와 프리미티브가 어떻게 동작합니까?

DDD
풀어 주다: 2024-12-20 21:44:09
원래의
107명이 탐색했습니다.

Pass-by-Reference vs. Pass-by-Value in JavaScript: How Do Objects and Primitives Behave in Function Calls?

JavaScript Pass-by 참조와 Pass-by 값

JavaScript는 값별 전달 및 참조별 전달 메커니즘을 모두 사용합니다. . 숫자, 문자열과 같은 기본 요소는 값으로 전달됩니다. 즉, 기본 요소의 복사본이 호출된 함수에 생성됩니다. 대조적으로, 기본이 아닌 객체, 주로 객체는 참조로 전달됩니다.

객체의 경우 복사본이 아닌 객체에 대한 참조가 전달됩니다. 즉, 제공된 예에서 설명한 것처럼 호출된 함수에서 참조 변수를 수정해도 호출자의 참조에 영향을 주지 않습니다.

var a = { key: 'value' };
replace(a); // a still holds its original value
update(a); // a's contents change
로그인 후 복사

직사각형 함수와의 혼동

질문의 예에는 my 매개변수가 포함된 중첩 함수 직사각형이 포함되어 있습니다. 이 매개변수는 처음에는 정의되지 않았지만 함수 내에서 정의되었습니다. 이렇게 설정한 이유는 직사각형 함수와 그 내부 영역 함수 간에 데이터를 공유할 수 있는 방법을 제공하기 위함입니다.

사각형 함수에서 my 매개변수는 초기에 정의되어 있지 않지만 참조로 전달된 객체 참조입니다. . 이처럼 직사각형 함수 내에서 할당되면 면적 함수가 my 매개변수를 직접 받지 않더라도 직사각형 및 면적 함수 내에서 모두 수정될 수 있는 객체에 대한 새로운 참조를 생성합니다.

위 내용은 JavaScript의 참조에 의한 전달과 값에 의한 전달: 함수 호출에서 객체와 프리미티브가 어떻게 동작합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿