> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트에서 배열과 같은 객체를 정의하는 방법

자바스크립트에서 배열과 같은 객체를 정의하는 방법

醉折花枝作酒筹
풀어 주다: 2023-01-07 11:44:57
원래의
4029명이 탐색했습니다.

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 );//[&#39;test 0&#39;,&#39;test 1&#39;...]
//类型
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿