
자바스크립트 내장객체(Build-in object)
자바스크립트 구동시 쓸 수 있는 자바스크립트 고유 객체(ex. Math, String, Number, Date)
브라우저 내장객체(Native object)
자바스크립트 구동시 보단 엔진을 구동하는 빌드측에서 가진 객체
사용자정의 객체(Host object)
사용자가 객체를 정의하고 생성함
var person = {
name: '재석',
age: 47
}
console.log(person.name) //재석
console.log(person.age) //47
name, age 는 person의 key이며, value(값)을 가지고있다.
즉, 프로퍼티이다.
객체가 가지는 동작
함수와 같은 형태이지만 객체를 통해서 수행가능한 함수라는 의미가 강하다.
var person = {
name: '재석',
age: 47,
sayHello: function(){
console.log('안녕하세요.')
}
}
console.log(person.name) //재석
console.log(person.age) //47
console.log(person.sayHello) //안녕하세요.
var person = {
name: '재석',
age: 47,
sayHello: function(){
console.log('안녕하세요.')
}
}
function Person(name, age){
this.name = name;
this.age = age;
this.sayHello = function(){
console.log('안녕하세요.')
}
}
const jaeseok = new Person('재석', 47);
console.log(jaeseok.name); //재석
console.log(jaeseok.age); //47
console.log(jaeseok.sayHello()); //안녕하세요.
function personCreate(name, age){
return {
name:name,
age, //key와 value가 같으면 하나만 사용가능 (ES6)
sayHello: function(){
console.log('안녕하세요.')
}
}
}
const jaeseok = personCreate('재석', 47);
console.log(jaeseok.name); //재석
console.log(jaeseok.age); //47
console.log(jaeseok.sayHello()); //안녕하세요.
javascript를 쓰면서 항상 그냥 객체를 만들려면 var 변수 = {}
아니면 new 붙이면 되겠지 였지만 그게 왜 그런지는 한번도 생각하지 못했다.
new + 생성자 = 객체가 되어버리고 생성자를 쓰고 new를 안써주면 그냥 그건 그저 리턴없는 함수가 되어버린다.
하지만 함수안에 return을 기본으로 넣어주면 new가 없이 쓰여지며 이것들이 그냥 하나의 트릭이 아닌 각각의 명칭이 있는 방법이였다.