객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라고 할 수 있다. 객체 내의 변수를 프로퍼티 함수를 메소드라고 부른다.

var person = {};
person.name = 'egoing';
poerson.introduce = function() {
	return 'My name is' + this.name;	
}

document.write(person.introduce());
var person = {
	'name' : 'egoing',
	'introduce' : function() {
		return 'My name is '+this.name;
	}
}
document.write(person.introduce());

생성자는 객체를 만드는 역할을 하는 함수. 자바스크립트에서 함수는 재사용 가능한 로직의 묶음이 아니라 객체를 만드는 창조자라고 할수있다.

function Person() {}
var p = new Person(); // 이 맥락에서 함수를 그냥 함수라고하지않고 생성자라고 부름. 객체의 생성자!
p.name = 'egoing'
p.introduce = function() {
	...
}
function Person(name) {
	this.name = name;
	this.introduce = function() {
		return 'My name is '+this.name;
	}
}
var p1 = new Person('egoing');
var p2 = new Person('leezche');

전역객체

전역객체는 특수한 객체다. 모든 객체는 이 전역 객체의 프로퍼티이다.

function func() {
		alert('hello');
}
func(); 
window.func(); // 이렇게 해도 동작해

window가 객체 라는것이고, . 뒤에 나오는 func()는 속성이라는건데 이 속성에 담겨있는게 함수, 즉 메소드인거.

func()라는 함수는 사실은 window라는 객체에 메소드 인거야. 다만 우리가 편의를 위해서 window라는 전역객체를 생략해도 되는거야..

이런 면에서 모든함수는 전역변수 전역함수라고 할지라도 window라는 전역객체의 프로퍼티라고하는거임.

객체 라는것에 모든것이 사실 소속되어있었던거

var o = {'func':function(){
	alert('hi');
}}
o.func();
window.o.func();