분류 전체보기(31)
-
call, apply, bind (1) - call
call이란? MDN에서 Function.prototype.call이란 주어진 this값 및 각각 전달된 인수와 함께 호출된 함수를 호출한다고 나와있다. 쉽게 애기해서, call을 사용하면 자신을 this로 지칭한 객체의 메서드 외에 다른 객체의 메서드도 사용할 수 있다. 물론 프로퍼티의 경우도 동일하게 가져와 쓸 수 있다. function Person (f_name,l_name){ this.f_name = f_name; this.l_name = l_name; } undefined Person.prototype.hello = function(){ console.log(`my name is ${this.f_name} ${this.l_name}`); } let kim = new Person('kim','mi..
2020.08.22 -
call, apply, bind를 시작하기 전에 this
this? 현재 메소드가 실행되는 '객체'를 지정한다고 할 수 있다. 예를 들어, 크롬 콘솔창에 아래와 같이 함수를 만들어보자. function add(num1,num2){ console.log(this); return num1+num2; } add(1,2); //Window {...} //3 위의 add는 전역에서 생성된 것이므로 해당 함수는 window에서 실행이된다. 이때를 '전역문맥'이라고 한다. 만약 다른 객체에 함수를 만들어 실행시킨다면 this는 변경이된다. let obj = { num1 : 2, num2 : 3, add : function(num1,num2){ console.log(this); return num1+num2 }} obj.add(obj.num1, obj.num2) //{num..
2020.08.11 -
Callback function
1. 콜백함수란? 'MDN'에서 정의한 콜백함수를 보면 이렇게 되어있다. A callback function is a function passed into another function as an argument, which is then invoked inside the outer function to complete some kind of routine or action. (콜백 함수는 인수로 다른 함수에 전달 된 함수로, 외부 함수 내에서 호출되어 일종의 루틴 또는 조치를 완료합니다.)라고 정의가 되어있는데, 쉽게 말해, 다른 함수에 '인자'로서 넘겨 실행할 수 있는 함수인 것이다. 예를 들면, 우리가 지금까지 자주 써왔던, array.forEach(function)에서 'function'이 콜백함..
2020.08.11 -
Javascript - ES6 Class & super
1. Class란 JavaScript class는 ECMAScript 2015을 통해 소개되었으며, 기존 prototype 기반의 상속 보다 명료하게 사용할 수 있게 해준 것이지만, 중요한 것은 기존의 방법과 동일하지만 표현 방법이 달라진 것일 뿐이다! 2. 사용방법 //class 정의 class restaurant{ constructor(appet, main, drink){ this.appet = appet; this.main = main; this.drink = drink; } } //class 사용방법 let my = new restaurant('soup', 'meet', 'beer'); my.appet // 'soup' my.main // 'meet' my.drink // 'beer' //__pr..
2020.07.30 -
Javascript - Object Oriented Programming(OOP)
1. OOP란? 객체 지향형 프로그래밍으로 절차형 프로그래밍과 비교되며 사용 목적으로는 간편하고 간결하게 사용하기 위함이다. 2. Javascript에서 Object를 정의하는 방법 (1) function 사용하기 function make_person(name,age){ this.name = name; this.age = age; this.greeting = function(){ console.log('name : ',name,' age : ',age); } } let salva = new Person('salva',25); (2) class 사용하기(ES6) class person { constructor(name,age){ this.name = name; this.name = age; } greeti..
2020.07.29 -
배워갈수록 느낀점.
이제 막 4~5주차이지만 꺠달은 것. 처음부터 알고 있었지만, 배워야 할 것도 많고, 익숙해져야할 것도 산더미이다. 당장에는 해야하는 것들을 하느라 막막하지만, 점점 시간이 지나갈수록 느끼는 점이 있다. 바로 '배운 것을 제대로 습득하였는가'이다. 진행하면 할수록 더 높은 질의 코드를 만들고, 스스로 사용할 수 있어야되는데 그러기 위해서 가장 중요한 것이 기초라고 하지 않던가. 이 문제점을 알게 된 것도 자연스레 계속 하다보니 갖게 되었다. 더 복잡한 코드를 쓰게 되고, 더 많은 생각들을 정리하여 코드에 넣다보니 점점 코드가 복잡해지거나 정돈이 안되고 요점이 없어보이는 듯한 느낌을 받게 되었다. 그럴수록 배운 것들에 대해 다시 한 번 생각해보고 활용할 생각을 해야하는데, 배운 것이 익숙치 않아 기초적이고..
2020.07.28