생성자 함수를 통한 객체 vs 그냥 객체

KHW·2021년 3월 1일
0

Javascript 지식쌓기

목록 보기
26/95

생성자 함수를 통한 객체

function Old(name,age){
	this.name = name;
	this.age = age;
	this.name_ip = function(){
		console.log(name);
        	console.log(this);
	} 
}

let name1 = new Old('misaka',19)

name1.name_ip();

결과
misaka
Old {name: "misaka", age: 19, name_ip: ƒ}

name만 출력해도 정상적으로 출력되는 이유는 this.name_ip로 메소드를 this로 이미 정의해 놓아서 해당 this(name1)에서의 name을 찾아가기 때문에 따로 this.name을 출력하라고 할 필요가 없다.


그냥 객체

let name2 = {
    name : 'misaka',
    age : 19,
    name_ip : function(){
        console.log(this.name);
        console.log(this);
    }
}

name2.name_ip()

결과
misaka
{name: "misaka", age: 19, name_ip: ƒ}

this.name으로 출력하는 이유는 그냥 name만 출력하라 하면 name을 찾지 못하기 때문에 이를 정확히 지정해주는 this(name2)를 언급해줘서 name을 찾아가야 하므로 this.name을 출력하라고 해야한다.

정리

해당 객체와 같은 틀을 여러개 만들때는 생성자 함수가 필요하고 그냥 객체 하나 만들려면 바로 만드는 객체로 사용하는것을 추천

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글