펭귄집

prototype 프로퍼티



모든 함수는 객체로서 prototype 프로퍼티를 가지고 있다.


주의사항

함수 객체의 prototype 프로퍼티는 모든 객체의 부모를 나타내는 내부프로퍼티 [[Prototype]]과 헷갈리면 안됀다



prototype 프로퍼티와 [[Prototype]]프로퍼티

공통점 : 두 프로퍼티 모두 프로토타입 객체르 가리킨다

[[Prototype]]프로퍼티 : 모든 객체에 있는 내부프로퍼티
                        객체 입장에서 자신의 부모 역할을 하는 프로토타입 객체를 가리킨다.

prototype 프로퍼티 : 이 함수가 생성자로 사용될 때 이 함수를 통해 생성된 객체의 부모역할을 하는 프로토타입 객체를가리킨다.



prototype 프로퍼티는 함수가 생성될 때 만들어지며 constructor 프로퍼티 하나만 있는 객체를 가리킨다
prototype 프로퍼티가 가리키는 프로토타입 객체의 유일한 constructor 프로퍼티는 자신과 연결된 함수를 가리킨다.
-> 즉, 자바스크립트에서는 함수를 생성할 때, 함수 자신과 연결된 프로토타입 객체를 동시에 생성

           이 둘은 각각 prototype과 constructor라는 프로퍼티로 서로를 참조





프로토타입 객체 네이밍 

함수의 prototype 프로퍼티가 가리키는 프로토타입 객체는 일반적으로 따로 네이밍하지 않고, 자신과 연결된 함수의 prototype 프로퍼티값을 그대로 이용한다.

ex) add()함수의 프로토타입 객체는 add.prototype이 된다



함수 객체와 프로토타입 객체와의 관계를 보여주는 코드


//MyFucntion()함수 정의
function myFunction() {
     return true;
}


console.dir(muFunction.prototype);

console.dir(muFunction.prototype.constructor);

//89p참고




<참고문헌 : 인사이드자바스크립트(InsideJavascript)>

숫자



자바스크립트는 하나의 숫자형만 존재
모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문 -> 이는 C언어의 double 타입과 유사

var키워드로 선언되 자바스크립트 변수에는 정수나 실수 구분없이 그 값을 바로 저장할 수 있으므로 intNum, floatNum변수 모두 typeof연산자의 결과값이 number

자바스크렙스에선 정수형이 따로 X, 모든 숫자를 실수로 처리 -> 나눗셈할 때 주의



var num = 5/2;


console.log(num); 
console.log(Math.floor(num));



결과

2.5


2



이같이 소수 부분을 버리고 정수부분만 구하고 싶으면 Math.floor() 메서드 사용 ㄱㄱ


<참고문헌 : 인사이드자바스크립트(InsideJavascript)>

'전공서적 > 인사이드자바스크립트' 카테고리의 다른 글

Array() 생성자 함수  (0) 2017.11.16
Javscript배열 리터럴  (0) 2017.11.13
배열  (0) 2017.10.26
객체비교  (0) 2017.10.25
함수 호이스팅  (1) 2017.08.31