티스토리 뷰
모든 Object Prototype 을 갖는다.
var a = {}; //Firefox 3.6 and Chrome 5 Object.getPrototypeOf(a); //[object Object] //Firefox 3.6, Chrome 5 and Safari 4 a.__proto__; //[object Object] //all browsers a.constructor.prototype; //[object Object]Prototype 상속 받아 사용 할수 있다
//unusual case and does not work in IE var a = {}; a.__proto__ = Array.prototype; a.length; //0 //function will never be a constructor but it has a prototype property anyway Math.max.prototype; //[object Object] //function intended to be a constructor has a prototype too var A = function(name) { this.name = name; } A.prototype; //[object Object] //Math is not a function so no prototype property Math.prototype; //null
예제
//생성자 var Circle = function(radius) { this.radius = radius; //next line is implicit, added for illustration only //this.__proto__ = Circle.prototype; } //augment Circle's default prototype property thereby augmenting the prototype of each generated instance Circle.prototype.area = function() { return Math.PI*this.radius*this.radius; } //create two instances of a circle and make each leverage the common prototype var a = new Circle(3), b = new Circle(4); a.area().toFixed(2); //28.27 b.area().toFixed(2); //50.27 var A = function(name) { this.name = name; } var a = new A('alpha'); a.name; //'alpha' A.prototype.x = 23; a.x; //23
prototype 활용
String.prototype.times = function(count) { return count < 1 ? '' : new Array(count + 1).join(this); } "hello!".times(3); //"hello!hello!hello!"; "please...".times(6); //"please...please...please...please...please...please..."
'웹개발 > Javascript' 카테고리의 다른 글
자바스크립트 정규 표현식 (0) | 2010.12.23 |
---|---|
자바스크립트 시간 계산 샘플 (1) | 2010.12.20 |
Javascript Namespace 정리 (0) | 2010.12.14 |
Javascript RegEx Api (0) | 2010.12.14 |
Javascript 키워드 몇가지 (0) | 2010.12.14 |
댓글