전체 글 63

왜 이렇게 호출 되는가?

왜 밑의 두 문장처럼 호출되는지에 대해서 설명드리겠습니다. 일단 fighter.opponent.getFullname()을 호출하면 opponent 객체가 outer가 되고 이 outer안에 있는 getFullname이라는 객체의 this가 가르키는 객체는 다른 bind와 같은 지시해준 것이 없기 때문에 opponent를 가르키게 됩니다.따라서 fighter.opponent.getFullname()이 호출 되면 opponent를 가르키는 this -> fullname인 Francis Ngannou가 호출이 됩니다. 여기서  중요한 것은 fighter.opponent.getFullname()는 호출의 주체가 명확한 메서드 입니다. 그다음 fighter.getName()를 호출하면 그냥 함수로서 호출한것이 아..

JavaScript 2024.08.13

깊은 복사 vs 얕은 복사 JavaScript

오늘 자바 스크립트에서 깊은 복사와 얕은 복사에 대해서 알게 되었습니다.일단 깊은 복사와 얕은 복사 모두 참조값이 원본과 다른 객체를 생성합니다.예를 들어서var user = {    name: "john",    age: 20,}가 있다고 하고 이 객체의 값을 바꿔주는 것은 쉽습니다.하지만 이 객체의 값을 유지한 상태로 데이터를 가지고 있고 또 다른 객체를 생성해서 그 객체 값만 바꾼다고 했을 때의 방법은 새로운 객체를 하나 더 만들어서 똑같은 형태로 데이터를 할당해주는 것 보다 데이터에 할당된 값 즉, 변수를 참조해서 새로운 객체를 만들어 오는 것이 더욱 사용하기 편리하다는 의미 입니다.위의 객체는 얕은 복사든 깊은 복사든 결국 새로운 객체를 생성해 주고 user 객체안에 또다른 객체 값이 존재 하지..

TIL 2024.08.13

2024-08-12

이번 자바스크립트 인터넷 강의를 듣게 되었습니다.이미 C# 과 C++같은 언어를 공부를 해보고 JS의 완전 기초에 대해서 어느정도 알아보고 난 후 Js를 들으면서 Js언어가 얼마나 활용성이 높은지 알고 유연한 언어 라는 점을 알게 되었습니다.오늘 여러가지 공부를 하였지만 그 중에서 5가지만 이야기 하려고 합니다.(람다식도 중요하지만 C++에서 많이 해봤으니 넘어가도록 한다) 첫번째로는 문자열입니다.제가 모르는 부분들은 선언 이런게 아니라 함수 부분이었습니다.문자를 결합하기 위한 concat 함수, 단순하게 자르기 위한 substr, 문자열 검색을 위한 search, 문자열을 대체 해주기 위한 replace 그리고 문자열 분할을 위한 split함수였습니다.각각의 쓰임새는 알겠지만 아직 어떻게 활용하는지에 ..

Node.js 2024.08.12