>  기사  >  웹 프론트엔드  >  Array.prototype_javascript 기술의 일반 응용 분석

Array.prototype_javascript 기술의 일반 응용 분석

WBOY
WBOY원래의
2016-05-16 18:28:201075검색
제목
다음 문의 출력을 설명해 주세요.
코드 복사 코드는 다음과 같습니다. :

x = {shift:[].shift};
x.shift()
console.info(x.length)

올바르게 대답했다면 이미 Array 함수의 일반적인 응용을 이해하고 있다는 의미입니다. 이 질문을 이해하기 전에 먼저 배열(Array)에 대한 이동의 정의를 이해해야 합니다.

관련 지침은 MDC에 매우 명확하게 설명되어 있습니다
코드 복사 코드

shift는 의도적으로 일반적입니다. 이 메소드는
배열과 유사한 객체에 적용할 수 있습니다.
시리즈의 마지막을 반영하는 길이 속성을 포함하지 않는 객체
0부터 시작하는 연속적인 숫자 속성은
의미 있는 방식으로 동작하지 않을 수 있습니다.

동시에 EMCAScript의 정의는 길이 속성의 변경도 정의합니다. 따라서 기본적으로 위 질문에 대한 답은
코드를 복사하세요 코드는 다음과 같습니다.
0

확산적 사고
아직도 위의 질문을 이해할 수 없다면 Array.prototype의 영향을 더 명확하게 설명할 수 있습니다. 물체의 길이를 이동합니다.
코드 복사 코드는 다음과 같습니다.

x =
Array .prototype.shift.call(x);
console.info(x.length);

분명히 객체에 대해 길이 속성이 정의되어 있으면 Shift가 자동으로 길이 속성을 추가합니다. 0으로 설정합니다.

이제 우리는 이것을 말했으므로 다음 질문에서 무엇을 출력할지 생각하는 것은 모두에게 맡기겠습니다.
코드 복사 코드는 다음과 같습니다.

x = 함수(a, b, c ) {} ;
Array.prototype.shift.call(x);
console.info(x.length);

제네릭의 이해
분명히 위의 질문은 어쩌면 나는 아직도 이 글의 제목을 설명하지 못할 수도 있다. 실제로 일반 응용 프로그램은 이전에 설명되었지만 여기서는 "배열과 유사한" 작업에 Array 메서드를 사용하는 방법을 주로 설명합니다.

강제 배열
코드 복사 코드는 다음과 같습니다

var args = Array.prototype.slice.call(arguments);

이 사용법은 화성에 가깝지만 이 기간 이전에도 사용되었습니다. 자세한 내용은 여기를 참조하세요.

데이터 반복
코드 복사 코드는 다음과 같습니다.

Array.prototype.forEach.call(arguments, function(i) {
console.info(i);
})

객체가 다음과 같은 경우 recursed, then exit "전통적인" for, while 및 기타 명령문 외에도 Array의 forEach 속성 사용을 고려할 수도 있습니다(IE는 비극이 될 것입니다). 배열의 forEach 메서드는 여기에 자세히 설명되어 있습니다.

기타 Array 확장 사용법은 여러분의 생각을 펼칠 수 있습니다. 해당 브라우저에 해당하는 Array 구현 방법이 없다면 여기를 참고하세요.

사실 Array 메소드뿐만 아니라 많은 브라우저 네이티브 객체의 메소드도 일반적입니다. 이러한 기능을 완전히 사용하면 코드를 더 명확하게 만들 수 있습니다.
네이티브 메소드를 사용하는 것이 더 효율적입니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.