배열(Array)

유사 배열 객체

자바스크립트 배열 메서드는 배열 뿐 아니라 유사배열 객체에서도 적용이 가능하도록 범용(generic) 메서드로 구현되었다.(concat()메서드는 예외.) 유사배열은 Array.prototype을 상속받지 않기 때문에, 배열 메서드를 해당객체로 호출할 수는 없다. 대신 Function.call메서드를 통해서 간접적으로 호출할 수 있다.

a = {"0":"a","1":"b","2":"c","3":"d", length:4}

Array.prototype.join.call(a, "+"); // -> "a+b+c"
Array.prototype.slice.call(a, 0);  // -> ["a","b","c"] 배열이 반환됨.

Array.prototype.map.call(a, function(x){
    return x.toUpperCase();
});

// -> ['A','B','C']

call의 첫번째 인자는 메서드의 대상, 두번째 인자부터 해당 메서드의 인자로 들어간다.

문자열을 배열처럼 사용하기

요즘 대부분의 브라우저에서 문자열은 읽기전용 배열처럼 동작한다. 문자열의 각 문자는 chatAt()메서드로 접근할 수도 있지만 대괄호 []를 사용해 접근할 수도 있다. 읽기 전용이므로 push(), sort(), reverse(), splice() 와 같이 대상을 직접 수정하는 메서드는 동작하지 않는다.

var s = "text";
s.charAt(0); // -> 't'
s[0] // -> 't'

results matching ""

    No results matching ""