자바스크립트 함수 3
Javascript 2011. 12. 8. 18:21
"자바스크립트" 함수는 생성자를 나타내기도 합니다.
- function x(){
- this.x = 1;
- this.y = 2;
- }
- alert(typeof new x()); // object
- alert(new x().x); // 1
- alert(new x().y); // 2
설계된 x() 생성자 함수를 통해 객체가 생성 됩니다.
여기서 x 함수 객체를 생성자 함수라 표현 하는것은 객체(this)를 생성하는
함수이기 때문입니다.
자바스크립트 함수 2
Javascript 2011. 12. 7. 16:29
자바스크립트 언어는 설계상 클래스 라는 계념이 존재하지 않지만, 상황에 따라
함수가 클래스를 나타내기도 합니다.
"즉, OOP 언어의 클래스 계념이 어느정도 존재 한다고 볼 수도 있습니다."
아래 예제를 보시겠습니다.
-
function x(){
-
-
this.x = 1;
-
this.y = 2;
-
}
-
-
alert(typeof new x()); // object
-
alert(new x().x); // 1
-
alert(new x().y); // 2
1. x 함수 객체가 생성 됩니다.
2. x 함수 객체의 인스턴스 맴버 x, y를 추가 합니다.
3.
typeof new x() 의 데이터 타입은 object가 반환됩니다.
4.
new x().x 객체의 인스턴스 맴버 x값 1을 반환합니다.
5. new x().y 객체의 인스턴스 맴버 y값 2을 반환합니다.
마치 타 언어의 클래스 처럼 new 연산자와 맴버가 설계된 생성자를 통해 객체를 생성하지만, 유사성만 가질 뿐 앞서 말했던것처럼 자바스크립트는 클래스가 존재 하지 않습니다.
즉, "자바스크립트"에서 객체는 단순히 "key/value"로 구성되며, 언제든 생성하고 변경할 수 있습니다.
자바스크립트 함수 1
Javascript 2011. 12. 7. 14:21
"자바스크립트" 언어 에서 함수는 객체입니다.
이유는 아래와 같습니다.
- alert(typeof function() { return this; }); // function
-
alert(typeof new Function('', 'return this')); // function
-
-
alert(function() { return this; }.constructor); // Function()
-
alert(new Function('', 'return this').constructor); // Function()
typeof function() { return this; } 와 typeof new Function('', 'return this') 코드 모두 함수 객체를 생성한다는 것을 알 수 있습니다.
즉, function() { return this; }.constructor 와
new Function('', 'return this').constructor의 생성자 함수는 Function()이며, 둘다 함수 객체 라는 것을 다시
한번 알 수 있습니다.
두 객체 생성 방식의 차이점으로는 첫번째 함수 객체는 암묵적으로 생성되었고 두번째 함수 객체는 명시적으로 new 연산자를 통해 생성되었다는 것입니다.