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을 출력하라고 해야한다.
해당 객체와 같은 틀을 여러개 만들때는 생성자 함수가 필요하고 그냥 객체 하나 만들려면 바로 만드는 객체로 사용하는것을 추천