Javascript 에서 arguments 대상 상세 설명

2064 단어
지난 글 에서 우 리 는 자바 script 의 기본 매개 변 수 를 토론 하 였 습 니 다. 이 글 은 자바 script 의 arguments 매개 변수 대상 을 토론 합 니 다.
다음 사례 의 함수 입 니 다. 우 리 는 어떻게 들 어 오 는 매개 변수 에 따라 서로 다른 처 리 를 합 니까?
 
  
function addAll () {
    // What do we do here?
}

// Should return 6
addAll(1, 2, 3);

// Should return 10
addAll(1, 2, 3, 4);


다행히도 자 바스 크 립 트 는 위 와 같은 상황 을 처리 할 수 있 는 arguments 대상 이 있 습 니 다.arguments 대상 은 클래스 배열 대상 입 니 다. arguments 대상 의 상세 한 상황 을 알 고 싶 으 면 여 기 를 찌 르 십시오. 우 리 는 arguments 대상 을 사용 하여 상례 를 바 꿉 니 다.
 
  
function addAll () {
    var sum = 0;

    for (var i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }

    return sum;
}

// Returns 6
addAll(1, 2, 3);

// Returns 10
addAll(1, 2, 3, 4);


위 에서 우 리 는 arguments 대상 이 하나의 배열 대상 이 라 고 말 했 습 니 다. 다음은 테스트 해 보 겠 습 니 다.
 
  
function getName() {
 console.log(Array.isArray(arguments));
}

//will output false
getName("benjamin");


상술 한 테스트 결 과 를 통 해 알 수 있 듯 이 그것 은 하나의 수조 대상 이 아니라면 수조 대상 과 어떤 차이 가 있 습 니까?자세 한 내용 은 여 기 를 찍 어 주세요.
다음 예 를 실행 하면 오류 가 발생 합 니 다:
 
  
function sortArgs () {
    // Uncaught TypeError: undefined is not a function
    sorted = arguments.sort()

    return sorted;
}
sortArgs();


우 리 는 아래 와 같이 하나의 배열 대상 을 배열 대상 으로 바 꿀 수 있다.
 
  
function sortArgs () {
    // Convert arguments object into a real array
    var args = [].slice.call(arguments);

    // Now this will work!
    sorted = args.sort()

    return sorted;
}

//will output [1, 2, 3]
console.log(sortArgs(1,3,2));


만약 당신 이 이 글 이 당신 에 게 도움 이 된다 고 느낀다 면, 더 필요 한 사람 에 게 전달 하 기 를 바 랍 니 다.글 이 타당 하지 않 은 점 은 댓 글 을 수정 하 는 것 을 환영 합 니 다.

좋은 웹페이지 즐겨찾기