2019.06.18
// 확산 연산자(...)
배열의 나머지 값들을 받아오거나 확장시킬 수 있다
남는 매개변수를 이용할 수 있다
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // ex) 확산 연산자 let f1 = (x, y)=>{     console.log(`f1.x : ${x}, f1.y : ${y}`); } let f2 = (x,...y)=>{     console.log(`f2.x : ${x}, f2.y : ${y}`); } f1(1); // f1.x : 1, f2.x : undefined f1(1,2,3); // f1.x : 1, f1.y : 2 f2(3); // f2.x : 3, f2.y :  f2(4,5); // f2.x : 4, f2.y : 5 f2(6,7,8); // f2.x : 6, f2.y : 7,8  | 
// 함수(function)
소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다
// 메서드(method)
객체 지향 프로그래밍 언어에서 사용한다
클래스 인스턴스 (또는 클래스 객체)에 저장되어 있는 데이터에 접근할 수 있는 특수 속성을 가지고 있다
즉, 클래스 내부에서 함수를 사용할 때 '메서드'라하고 멤버함수라고 부르기도 한다
// this
Java에서는 클래스로부터 생성되는 인스턴스 중 현재 객체를 의미하는 연산자
클래스 밖에서는 사용X
Java Script에서는 함수의 현재 실행 문맥
메서드를 호출하면 this는 호출한 메서드를 소유하는 객체가 된다
객체의 프로퍼티인 함수에서 의미가 있다
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // ex) this 연산자 const o = {     name : "codenbike",     getName1 : () => {         console.log(this.name); // undefined     },     getName2 : function(){         console.log(this.name); // codenbike         let x = function(){             console.log(this.name); // undefined, function의 단점         };         let that = this;         let y = function(){             console.log(that.name); // codenbike         }         x();         y();     } } o.getName1(); o.getName2(); | 
// 프로퍼티(property)
객체의 일부로 이름과 값 사이 연결을 의미
객체의 속성 나타내는 접근 가능한 이름과 활용가능한 값을 가지는 특별한형태
접근 연산자 (.) ex) o.getName1();
일반 함수(function)에서 this는 함수를 호출시 함수가 어떻게 호출되었는지에 따라서 this에 바인딩할 객체가 동적으로 결정된다
화살표 함수(()=>{})에서 this는 함수 선언시 this에 바인딩할 객체가 정적으로 결정되는데 언제나 상위 스코프의 this를 가리킨다
// 바인딩(binding)
메서드와 객체를 묶어놓는 것
// 스코프(scope)
변수를 사용할 수 있는 영역
// 호이스팅(hoisting)
변수를 선언하지도 않았는데 그 변수에 접근할 수 있다
var로 변수를 사용하여 스코프 맨위로 끌어올리거나 함수 호이스팅을 통해 함수를 선언하기 전에 호출할 수 있다
| 1 2 3 4 5 6 7 | // ex) 호이스팅 greet(); function greet(){     console.log("hi"); } | 
'교육 > Java Script' 카테고리의 다른 글
| #29 Java Script jQuery, Vue, Bootstrap (0) | 2019.07.29 | 
|---|---|
| #28 Java Script 배열과 배열처리, map과 reduce (0) | 2019.07.29 | 
| #23 Java Script 제어문, 함수와 매개변수 (0) | 2019.07.28 | 
| #19 Java Script HTML 참조속성, <a> 태그 (0) | 2019.07.26 | 
| #18 Java Script 문자열 일부를 추출 substr() (0) | 2019.07.25 |