찾다

 >  Q&A  >  본문

javascript - 함수 내부의 함수 외부 변수에 값을 할당하는 방법은 무엇입니까?


위와 같이 g에는 새로운 값을 할당할 수 없습니다. 외부 변수에 임의로 값을 할당할 수 있는 fn 함수를 작성하고 싶습니다

실제 요구사항은 위와 같고, 인스턴스화된 변수를 외부에 할당하고 싶습니다

淡淡烟草味淡淡烟草味2745일 전2657

모든 응답(5)나는 대답할 것이다

  • PHPz

    PHPz2017-05-19 10:41:36

    질문자가 이해하지 못한 개념은 함수 매개변수가 전달되는 방식에 대한 문제입니다.

    으아악

    외부 변수가 함수에 매개변수로 전달되는 경우 두 가지 상황, 즉 기본 데이터 유형과 객체를 이해해야 합니다.

    매개변수가 기본 데이터 유형인 경우 함수의 매개변수는 값으로 전달됩니다. 즉, 값이 매개변수에 복사됩니다. 함수가 매개변수 값을 변경하는 방법은 실제 매개변수의 복사본만 변경하는 것입니다. 스크린샷에 표시된 것처럼 온톨로지에 영향을 미치지 않습니다.

    파라미터가 객체일 때 실제로는 값 전달인 줄 알지만, 전달되는 것은 객체의 참조 주소 값입니다. 함수는 내부적으로 참조 객체 주소를 실제 데이터 객체로 인덱싱한 다음, 해당 객체의 속성을 변경합니다. 이는 외부 세계에 영향을 미칠 상황입니다.

    일반적으로 외부 변수에 값을 할당하려는 경우입니다. 변수를 매개변수로 전달하지 않고 함수 본문에서 직접 처리를 수행할 수도 있습니다.

    으아악

    함수 변수 검색 규칙에 따라 먼저 현재 실행 본문에 해당 변수에 g가 있는지 검색해 보세요. 외부 레이어에서 찾지 못하면 해당 변수가 정의되거나 선언되지 않은 것입니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:41:36

    Javascript의 함수 매개변수 전달은 모두 "값 전달"입니다.

    좀 더 합리적으로 쓰는 방법은

    으아악

    비합리적인 글쓰기 방식

    으아악

    후자가 불합리한 세 번째 이유는 결합도가 너무 높다는 점입니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:41:36

    으아악

    이것은 귀하에게 필요한 것을 할 수 있지만 아마도 보편적인 것을 원할 것입니다. 그렇죠?

    으아악

    회신하다
    0
  • ringa_lee

    ringa_lee2017-05-19 10:41:36

    으아악

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:41:36

    var g;
    function fn(값){
    g = 값;
    }
    fn(1);
    g//1#🎜🎜 #

    회신하다
    0
  • 취소회신하다