JavaScript 전달 변수:값 전달?인용 전달?
var x = y = 1;
y = 2;
alert(x);
x 의 값 은 얼마 입 니까?
var obj = {};
var sub = {};
sub['id'] = 3;
obj['sub'] = sub;
sub['id'] = 4;
alert(obj['sub']['id']);
obj[sub][id]의 값 은 얼마나 됩 니까?그들 은 정말 너의 기대 에 부합 하 니?우 리 는 각각 2 단 코드 를 실행 하 였 는데,1 단 프로그램 에서 x 의 값 이 바 뀌 지 않 았 고,2 단 프로그램의 obj[sub'][id]의 값 이 바 뀌 었 다 는 것 을 발견 하 였 다.똑 같이 할당 작업 입 니 다.똑 같이 다른 복사 값 을 수정 하 는 것 입 니 다.왜 프로그램 소스 변 수 는 변 하지 않 았 고 프로그램 소스 변 수 는 변 하지 않 았 습 니까?이 전달 은 도대체 값 에 따라 전달 되 는 것 입 니까?아니면 인용 에 따라 전달 되 는 것 입 니까?이 송 봉 이 번역 한'자 바스 크 립 트 고급 프로 그래 밍 2 판'에 서 는 답 이 나 왔 다.시 작 된 이 두 가지 예 에서 사실상 A 의 값 을 B 에 게 복 사 했 습 니 다.다른 것 은 첫 번 째 예 에서 A 의 값 은 int 형의 1 이 고 두 번 째 예 에서 A 의 값 은 주소 지침 입 니 다.이 주소 지침 은 한 대상 에 접근 할 수 있 습 니 다.복 사 를 한 후에 첫 번 째 예 에서 B 의 값 은 새로운 int 가 되 었 습 니 다.그의 값 은 1 입 니 다.두 번 째 예 에서 B 의 값 은 새로운 주소 포인터 가 되 었 고 그의 값 은 이 대상 의 주소 이다.아래 의 예 는
function setName(obj){
obj.name = "test1";
obj = {};
obj.name = "test2";
}
var person = new Object();
setName(person);
alert(person.name);
을 이해 하 는 데 도움 을 줄 수 있 습 니 다.setName 함 수 를 호출 하여 변수의 name 속성 을 수 정 했 지만 person.name 의 값 은 변 하지 않 았 습 니 다.함수 에서 obj 가 가리 키 는 주소 가 바 뀌 었 기 때문에 이 주소 의 name 속성 을 수정 하면 원래 주소 의 name 속성 에 영향 을 주지 않 습 니 다.다른 한편,자바 스 크 립 트 의 전달 이 값 에 따라 전달 되 는 것 임 을 입증 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 값 전달 및 참조 전달 상세 정보하나의 대상이 매개 변수로 전달된 후에 이 방법은 이 대상의 속성을 바꾸고 변화된 결과를 되돌릴 수 있다. 그러면 여기는 도대체 값 전달입니까 아니면 인용 전달입니까? 답: 값 전달입니다.Java 프로그래밍 언어에는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.