프론트엔드스쿨 - 25일차

peace kim·2021년 12월 17일
0

프론트엔드스쿨

목록 보기
25/34

객체(Object)

객체지향에서 객체는 우리눈에 보이는 구체화된 대상을 의미
객체는 속성과 행위로 정의 할 수 있으며 객체를 정의할 수 있는 틀을 클래스(Class)라고 한다.
클래스는 멤버변수와 메서드로 정의하게 되고 클래스로 부터 객체를 생성(인스턴스)해서 사용하는 개념

this

this는 메소드를 호출한 객체가 저장되어 있는 속성을 말한다.

const test = {
  prop: 42,
  func: function() {
    return this.prop;
  },
};

console.log(test.func());
// expected output: 42

결과값

42

스코프,클로저

스코프(Scope)

자바스크립트에서 스코프란 어떤 변수들에 접근할 수 있는지를 정의.

스코프의 종류에는 전역 스코프(Global scope)와 지역 스코프(Local scope)가 있다.

전역 스코프(Global scope)

변수가 함수 바깥이나 중괄호 바깥에 선언되었다면 전역스코프다.

전역 변수를 선언한다면 모든 곳에서 해당 변수를 사용할 수 있다.

지역 스코프(Local scope)

코드의 특정 부분에서만 사용할 수 있는 변수는 지역 스코프에 있다고 할 수 있습니다.

이런 변수들은 지역 변수라고 말합니다.

자바스크립트에서는 두 가지의 지역 변수인 함수 스코프(function scope)와 블록 스코프(block scope)가 존재한다

함수 스코프(function scope)

함수 내부에서 변수를 선언하면 그 변수는 선언한 변수 내부에서만 접근할 수 있다.

function hello(){
	const hi = "hi dongdong";
    console.log(hi);
}

hello();
// Output = hi dongdong

console.log(hello);
// Error

블록 스코프(block scope)

중괄호 내부에서 const 또는 let으로 변수를 선언하면 그 변수들은 중괄호 블록 내부에서만 접근할 수 있다

{
  const hi = "hi dongdong";
  console.log(hi);
// Output"hi dongdong"

}
console.log(hi) 
// Error

클로저(Closure)

함수 내부에 함수를 작성할 때마다 클로저를 생성한 것.

내부에 작성된 함수를 클로저라고 부른다.

클로저는 나중에 외부 함수의 변수를 사용할 수 있기 때문에 보통 반환하여 사용한다.

따라서 클로저는 외부 함수의 변수에 접근할 수 있기 때문에 사이드 이펙트를 제어하거나 private 변수를 생성하기 위해 사용되어진다.

즉 함수 밖에서 선언된 변수를 함수 내부에서 사용할 때 클로저가 생성된다.

profile
개발자

0개의 댓글

관련 채용 정보