객체란 서로 연관된 변수와 함수를 그룹핑한 그릇이라고 할 수 있다. 객체 내의 변수를 프로퍼티 함수를 메소드라고 부른다.
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();