매개변수t当然不是指向test了,因为test는 기본 유형이고 기본 유형은 값 전송입니다. 즉, 값의 복사본만 상대방의 변수에 전달되는 반면 참조 유형은 참조(공유) 전송이며, 참조 유형을 가리킴 객체 포인터를 전달할 때 포인터의 복사본이 상대방의 변수에 전달됩니다. 상대방의 변수를 수정하는 것은 동일한 메모리 주소와 동일한 객체를 가리키기 때문에 원래 변수를 수정하는 것입니다.
으아악
참조(공유) 전달은 값 전달의 한 유형이라고 할 수도 있지만 전달된 값은 매우 특별합니다. 바로 포인터입니다.
위에서 작성하는 방법은
으아악test
的值当成参数,传进去了fn2
里面而已,fn2
里面的参数t
仅仅只是和test
값을 동일하게 만드는 것 뿐입니다.함수 내부의 외부 변수를 수정하고 싶다면 이렇게 작성하면 됩니다.
질문하신 분이 이미 "외부변수 수정방법"이라고 답변해주셨네요...
으아악매개변수
으아악t
当然不是指向test
了,因为test
는 기본 유형이고 기본 유형은 값 전송입니다. 즉, 값의 복사본만 상대방의 변수에 전달되는 반면 참조 유형은 참조(공유) 전송이며, 참조 유형을 가리킴 객체 포인터를 전달할 때 포인터의 복사본이 상대방의 변수에 전달됩니다. 상대방의 변수를 수정하는 것은 동일한 메모리 주소와 동일한 객체를 가리키기 때문에 원래 변수를 수정하는 것입니다.참조(공유) 전달은 값 전달의 한 유형이라고 할 수도 있지만 전달된 값은 매우 특별합니다. 바로 포인터입니다.
Javascript 함수는 모두 참조 대신 값으로 전달됩니다. t와 test 사이에는 동일한 값이 있다는 점을 제외하면 아무런 관계가 없습니다.
직접 변경하면 됩니다. 값을 전달할 필요가 없습니다
js의 값 전달 및 참조 전달에 대해 자세히 알아보세요.
으아악이렇게 작성해야 하는 경우 테스트 변수를 객체로 캡슐화한 다음 수정을 위해 객체를 이 함수에 전달할 수 있습니다.
으아악
JavaScript의 기본 유형에는 포인터나 참조가 없습니다. Object는 달리 설명하므로 이것이 유일한 트릭입니다.
으아악