목록전체 글 (126)
코딩쌀롱

call 메서드 Function.prototype.call(thisArg[, arg1[, arg2[, ...]]]) call 메서드는 호출 주체인 함수를 즉시 호출하고, this 바인딩한다. 첫 번째 인자를 this로 바인딩하고, 이후의 인자들을 호출할 함수의 매개변수로 한다. apply 메서드 Function.prototype.apply(thisArg[, argsArray]) apply 메서드는 call 메서드와 기능적으로 완전히 동일하다. 두 번째 인자를 배열로 받아 그 배열의 요소들을 호출할 함수의 매개변수로 지정한다. call과의 차이는 호출 함수의 매개변수를 전달하는 방식에서만 있다. call / apply 메서드의 활용 call, apply 메서드는 명시적으로 별도의 this를 바인딩하면서 함..

문제 발생 [프로그래머스 소수만들기 문제] 얕은 복사를 한 arr에 push로 값을 넣고, 결과값(배열)을 newArr에 할당하려고 했다. 당연히 push()의 반환값이 실행 후 바뀐 배열일 거라고 생각하고.... 문제 원인 push() 메서드의 반환값은 바뀐 배열의 길이다!! 그래서 console.log(newArr)를 했을 때 type이 number인 2가 반환됐던 것. 그와중에 나는 하필 숫자 2를 push를 해서 newArr값(길이)인 2랑 무슨 연관이 있는 줄 알았는데.. 하필 문자열도 해본다는 것을 '2'라고 했다😅 마찬가지로 unshift() 메서드도 바뀐 배열의 길이를 반환한다. shift(), pop()은 제거한 원소를 반환한다. 해결 방법 위 사진의 마지막 예시처럼 push의 반환값을 ..

전역 공간에서의 this 전역 공간에서 this는 전역 객체를 가리킨다. 전역 컨텍스트를 생성하는 주체가 전역 객체이기 때문. 브라우저에서 전역 객체는 'window', Node.js에서는 'global'이다. 전역 변수를 선언하면 자바스크립트 엔진은 전역 객체의 프로퍼티로 할당한다. 변수이면서 객체의 프로퍼티인 것. let a = 1; console.log(a); // 1 console.log(window.a); // 1 console.log(this.a); // 1 자바스크립트의 모든 변수는 특정 객체의 프로퍼티로서 동작한다. [변수 선언] 실행컨텍스트: 변수 수집 → Lexical Environment 프로퍼티로 저장 [변수 호출] 실행컨텍스트: L.E 조회 → 프로퍼티 값 반환 전역 공간에서 va..