어떻게 function 중의 arguments 를 일반 배열 로 바 꿉 니까?
1651 단어 arguments
이때 우 리 는 그것 의 값 을 다른 곳 으로 복사 해 야 한다.이런 식 으로: var a = arguments;조작 하면 a 가 얻 은 것 은 하나의 인용, 즉 얕 은 복사 일 뿐 우리 의 수 요 를 만족 시 킬 수 없다.물론 우 리 는 괜찮다.
var a=[];
for(var i=0;i<arguments.length;i++){
a.push(arguments[i]);
}
그러나 이런 방법 은 비교적 번 거 로 우 므 로 순환 으로 조작 해 야 한다.
우 리 는 배열 안에 slice 방법 이 자주 배열 의 복사 에 사용 된다 고 생각 했 지만, aruments 는 이런 방법 이 없 었 다.우 리 는 또 콜 을 통 해 방법 을 지정 할 수 있 는 수신 자 를 생각 했다.
aruments 는 클래스 배열 대상 (하나의 값 과 하나의 length 속성 으로 길 이 를 표시 합 니 다) 이기 때문에 우 리 는 배열 의 방법 을 빌려 조작 할 수 있 습 니 다.
var a=[].slice.call(argments);
전체 코드:
function test(){
var a=[].slice.call(arguments);
console.log(a);
}
test(1,2,3,4,5,6);//[1,2,3,4,5,6]
이렇게 하면 우 리 는 a 에서 어떠한 조작 도 arguments 에 영향 을 주지 않 을 것 이다. 그리고 a 는 현재 배열 로 서 어떠한 배열 작업 도 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Javacript] 함수에서 주의할 부분함수 선언식 ✅ 함수 선언식은 호이스팅 가능 (로직을 어느 위치에서 짜든 상관없이 해당 함수를 불러올 수 있음) 함수 표현식 ✅ 함수 표현식은 함수를 변수에 담은 것. ✅ 호이스팅이 불가능(로직을 상단에서부터 읽기 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.