Frontend
Javascript 배열과 유사배열
구라미
2020. 2. 5. 09:58
Javascript 배열과 유사배열
var nums = [1,2,3];
var nodes = document.querySelectorAll('div'); // NodeList [div, div, div, div, div, ...]
var els = document.body.children; // HTMLCollection [noscript, link, div, script, ...]
Array.isArray(nums); // true
Array.isArray(nodes); // false
Array.isArray(els); // false
출처: https://www.zerocho.com/category/JavaScript/post/5af6f9e707d77a001bb579d2
nodes, els 처럼 []로 감싸져 있지만 배열이 아닌 것을 유사배열이라고 하는데 유사배열일 때 배열의 메소드를 사용할 수 없다. 배열 메소드를 바로 사용할 수는 없고 빌려서 쓸 수 있는 방법이 있는데 배열 프로토타입에서 forEach메소드를 빌려오는 것이다.
Array.prototype.forEach.call(nodes, function(el) {
console.log(el);
});
[].forEach.call(els, function(el) {
console.log(el);
});
//위와 같이 사용한다.
Javascript에서 this
자바스크립트의 경우 Java와 같이 this에 바인딩되는 객체는 한가지가 아니라 해당 함수 호출 방식에 따라 this에 바인딩되는 객체가 달라진다.
함수를 호출하는 방식은
- 함수 호출
- 메소드 호출
- 생성자 함수 호출
- apply/call/bind 호출
이 있다.