빌트인 오브젝트인 Array 의 경우 아래와 같은 4가지 특징을 가지고 있다.
1. length property 는 list 에 element 가 추가 될 때마다 자동으로 업데이트 된다.
( The length property is automatically updated as new elements are added to the list. )
2. length 를 줄이면 array 도 줄어든다.
( Setting length to a smaller value truncates the array. )
3. Arrays 들은 Array.prototype 으로 부터 method 를 상속 받는다. 이건 당연한 개념이겠지만 buildt in Array object 가 생성될때 Array 의 prototype 의 method 를 그래도 쓸수 있게 된다.
이는 javascript 의 상속 개념을 찾아보면 도움이 될것 같다!
( Arrays inherit useful methods from Array.prototype. )
4. Arrays (여기서 Array 는 buildt in Array object 를 가르키는 듯 하다 ) 들은 Array 의 class attribute 를 가지고 있다. )
( Arrays have a class attribute of “Array”. )
출처 : https://www.safaribooksonline.com/library/view/javascript-the-definitive/9781449393854/ch07s11.html
array-like 란 직접 Array method 를 호출할 수 있는건 아니지만 iterate 는 할 수 있다. 이 말이 무슨말인지 보기 전에 그러면 array-like object 라는게 무엇인지 좀 더 자세히 설명해보겠다. 간단히 말하자면 object 인데 key 가 0,1,2,3 ... 과 같은 index 이고 마지막으로 length property 의 값이 있으면 Array-like object 가 된다.
Make Array-like object sample
var a = {}; // Start with a regular empty object // Add properties to make it "array-like" var i = 0; while(i < 10) { a[i] = i * i; i++; } a.length = i; // Now iterate through it as if it were a real ...
Q. 그래서 이걸 어따 쓰는지??
Array-like object 의 경우 Array object 처럼 for-in 과 for 문의 사용이 가능하다!!
sample
//sample 1 let values = {0: 1, 1: 2, length: 2}; for( var key in values) { console.log( key + ": " + values[key]); } for(var k = 0; k < values.length; k++) { console.log(values[k]); } //sample2 get(1, 2, 3); function get() { console.log(Array.isArray(args)); //false!! for(var key in args) { console.log(key, ':', args[key]); } for(var k = 0; k < args.length; k++) { console.log(args[k]); // Array-like 라는것을 알 수 있다!! } }
'ECMAScript 2015, ECMAScript 6th Edition' 카테고리의 다른 글
7. destructuring (0) | 2016.09.13 |
---|---|
0. 김영보 선생님 강의 후기 (0) | 2016.09.11 |
5. rest (0) | 2016.09.07 |
4. spread (0) | 2016.09.06 |
3. iterable protocol (0) | 2016.09.04 |