매서드

언어/JavaScript Deepdive

23장 : ES6 함수 추가 기능

함수의 구분 ES6 이전의 함수는 동일한 함수라도 다양한 형태로 호출할 수 있었다. var foo = function () { return 1; }; // 일반함수 foo(); // 1 // 생성자 함수로서 호출 new foo(); // foo {} // 메서드로서 호출 var obj = { foo: foo }; obj.foo(); // 1 ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출 가능 ES6 이전에 일반적으로 메서드라고 부르던 객체에 바인딩된 함수도 callable이면서 constructor이기 때문에 여러가지 형태로 호출할 수 있었다. --> 콜백함수도 마찬가지 그러나 위와 같이 함수를 여러 형태로 호출하게 되면 실수를 유발하고 성능상에도 좋지 않다. ..

언어/JavaScript Deepdive

22장 : 클래스

클래스 == 새로운 객체 생성 매커니즘의 “함수” 클래스와 생성자 함수의 차이 클래스를 new 연산자 없이 호출하면 에러가 발생 생성자 함수는 new 없이 호출해도 일반 함수로 호출됨 클래스는 상속을 지원하는 extends와 super 키워드를 제공 클래스는 let과 const처럼 호이스팅이 발생하지 않는 것 처럼 동작 클래스 내의 모든 코드에는 암묵적으로 strict mode가 지정되어 실행되면 해제 불가 클래스의 constructor, 프로토타입 메서드, 정적 메서드는 모두 프로퍼티 어트리뷰트 환경[[Enumerable]] 값이 모두 false === 열거 안됌. 클래스를 프로토타입 기반 객체 생성 패턴의 단순한 문법적 설탕이라고 보기보다는 새로운 객체 생성의 메커니즘으로 보는 것이 좀 더 합당 클래..

MellowHoney
'매서드' 태그의 글 목록