JavaScript에서 배열과 같은 객체를 정의하는 방법은 다음과 같습니다. 1. 먼저 빈 객체를 만듭니다. 2. 객체의 숫자 첨자 속성을 직접 정의합니다. 3. 핵심은 길이 속성과 스플라이스 속성을 설정하는 것입니다. 숫자와 기능에 대한 객체입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
js에는 배열과 유사한 객체가 많이 있습니다. 간단한 개념은 배열처럼 보이지만 배열이 아니라는 것입니다. 숫자 첨자를 사용하여 액세스할 수 있으며 배열 메서드가 없습니다.
예: 인수, NodeList, HTMLCollection, jQuery 등
배열형 객체의 특징
1. 길이 속성 보유
var a=document.getElementsByTagName("p"); a.__proto__;// HTMLCollection {} 属于类数组对象a.length;//62
2. 숫자 첨자를 사용하여 객체에 액세스할 수 있습니다
a[0];//<p class="aspNetHidden">…</p>
3. 프로토타입은 사용할 수 없습니다. 메서드(예: 슬라이스, 팝 등)
a.slice;//undefined Error! a.pop;//undefined Error!
4. 인스턴스 오브 작업의 사용은 배열
[] instanceof Array;//true a instanceof Array;//false
5에 속하지 않습니다. 실제 배열 개체로 변환할 수 있습니다
var arr = Array.prototype.slice.call(a); arr instanceof Array;//true
PS: 참고 IE8에서는 슬라이스 메소드를 사용하여 일부 객체를 실제 배열 객체로 변환할 수 없습니다.
배열형 객체를 변환하려면 jquery에서 제공하는 $.makeArray() 메서드를 사용하는 것이 좋습니다
6. 일반적으로 다른 사용자 정의 속성을 정의할 수 있습니다
a.item;//function item() { [native code] }
배열형 객체의 장점
그렇다고 믿습니다. 장점에 대해서는 너무 많이 설명할 필요가 없습니다. js와 다른 백엔드 언어는 동일한 작동 모드를 갖습니다.
예를 들어, C#의 일부 목록 컬렉션은 숫자 아래 첨자 list[0] 또는 문자열 이름 list['name']을 사용하여 액세스하여 동일한 개체에 액세스할 수 있습니다.
또한 다양한 사용자 정의 메서드가 있으므로 확인할 수 있습니다. jquery 객체의 우아한 액세스 방법을 살펴보면 정말 멋진 객체입니다.
배열 유사 객체를 수동으로 생성하는 방법
주제로 돌아가서 유사 배열 객체를 수동으로 생성하는 방법입니다.
1. 먼저 빈 개체를 만듭니다
var array_like = {};//创建一个空对象
2. 개체에 대한 숫자 아래 첨자 속성을 직접 정의합니다. 이는 다른 언어에서는 절대 허용되지 않지만 JS에서는 중국어를 모두 사용하더라도 가능합니다. 그리고 중국어도 가능합니다
array_like[ 0 ] = "test 0"; array_like[ 1 ] = "test 1"; array_like[ 2 ] = "test 2"; array_like[ 3 ] = "test 3";
3 중요한 점은 객체에 대한 길이 속성과 스플라이스 속성을 숫자와 함수로 설정하는 것입니다
//关键点 array_like.length = 4;//为对象设置length属性 array_like.splice = [].splice;//同时设置splice属性为一个函数
PS: 스플라이스 속성을 설정하는 것은 실제로 브라우저의 콘솔을 속이고 모양을 표시하는 것입니다.
4. 테스트
//设定自定义属性 array_like.test0=array_like[0]; array_like.test1=array_like[1]; //直接输出 console.log( array_like );//['test 0','test 1'...] //类型 console.log( $.type( array_like ) );//"object" //数字下标访问 console.log( array_like[ 0 ] );//"test 0" //自定义属性访问 array_like.test0;//"test 0" //不是数组对象 array_like instanceof Array;//false //转换为真数组对象 var Arr=Array.prototype.slice.call(array_like); Arr instanceof Array;//true
5. 모든 코드:
var array_like = {}; array_like[ 0 ] = "test 0"; array_like[ 1 ] = "test 1"; array_like[ 2 ] = "test 2"; array_like[ 3 ] = "test 3"; array_like.length = 4; array_like.splice = [].splice; console.log( array_like ); console.log( $.type( array_like ) ); console.log( array_like[ 2 ] );
[추천 학습: javascript 고급 튜토리얼]
위 내용은 자바스크립트에서 배열과 같은 객체를 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!