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 |