본문 바로가기
반응형

programming language/Javascript11

call, apply, bind call, apply, bind 함수 호출 방식과 상관없이 this를 지정할 수 있다. call `func.call(thisArg[, arg1[, arg2[, ...]]])` 모든 함수에서 사용할 수 있고 this를 특정값으로 지정할 수 있다. - thisArg: 함수를 호출할 때 사용되어지는 this - arg1, arg2... : 함수가 호출되어야 하는 인수를 말한다. 쉽게 얘기하자면 this는 첫 번째 , 나머지 두 번째 부터는 해당 함수의 매개변수로서의 사용 [call을 사용해서 this 지정하기] //함수에서 this는 window를 가리킨다. const mike = { name: 'mike' } const Tom = { name: 'Tom' } function showTishName() { c.. 2022. 12. 6.
callback, promise, async/await callback 콜백함수는 다른 코드의 인자로 넘겨주는 함수이다. js에서는 나중에 실행하는 함수이기에 콜백함수라고 불린다. 1) 다른 함수의 인자로 넘길 수 있고 2) 리턴 값으로 함수를 쓸 수 있고 3) 변수에 함수를 넣을 수도 있다. 그래서 js에서는 함수를 일급객체라고 한다. 콜백을 받는 함수가 어떻게 동작하느냐에 따라서 동기적, 비동기적일 수 도 있다. 콜백은 나중에 실행하라고 인자를 다른 함수에게 넘겨주고 제어권도 함께 위임한다. 그래서 콜백을 받은 함수는 역할에 따라 받은 콜백을 실행한다. 콜백을 큐에 넣는지 바로 콜 스택에서 실행하는 역할인지에 따라 동기인지 비동기인지 구별이 된다. [콜백은 '함수'이다.] 콜백함수는 함수이기 때문에 콜백함수로 어떤 객체의 메서드를 전달하더라도 그 메서드는.. 2022. 11. 3.
변수에 대하여 ⤴️ 호이스팅 [var] 한번 선언된 변수를 다시 선언할 수 있다. var는 선언하기 전에 사용할 수 있다. var name console.log(name) //undefined name ="Mike" //할당 var로 선언한 모든 변수는 최상위로 끌어올리는 것처럼 동작한다. (호이스팅 현상이 발생함) 하지만 할당된 값은 호이스팅이 되지 않았다. [let] console.log(name) //ReferenceError let name ="Mike" //할당 같은 상황에서 let은 error가 발생한다. 그렇다면 let은 호이스팅이 되지 않나? 그렇지 않다. let도 호이스팅이 발생한다. (호이스팅: 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것 처럼 행동) 그렇다면 왜 var처럼 동작하지 않고 e.. 2022. 10. 13.
얕은복사 깊은복사 개념 코딩을 하다보면 얕/깊은 복사 개념을 모르면 중간중간 멈추게 된다. 어렴풋이 살짝만 알고 있던 상태에서 그순간만 이해하려고 대충 넘겼는데 데이터 타입정리하다보니 얕 깊복사 확실히 알아두자 맘을 먹게됐다. 어짜피 해야하면서 ㅋㅋㅋ 왜이리도 어슬렁 하는거니 ㅠㅠㅠㅠ 앞에 데이터타입에 대한 개념을 정리한것을 토대로 얕은 복사는 객체의 참조 값(주소 값) 을 복사, 깊은 복사는 객체의 '실제 값'을 새로운 메모리 공간에 복사한다. 🍓[ 얕은 복사 (shallow Copy) ] 흔히 알고 있듯, 객체에 담겨있는 변수를 다른 변수에 할당하면 call by reference (데이터 복사가 아닌 참조 형태)가 일어나게 되며, 한 변수를 변경하면 다른 변수의 데이터도 변경이 된다. 🔷 [참조형 데이터] 기본형 데이터의.. 2022. 9. 2.
728x90
반응형