Prototype 객체의 원형
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
Super.prototype = new Ultra();
function Sub(){}
Sub.prototype = new Super();
var o = new Sub();
console.log(o.ultraProp); // true
new를 붙이면 함수는 생성자가 되고 객체를 리턴한다.
var o = {}; 로 하지 않는 이유는?
객체를 만들 때 객체가 가지고 있어야하는 메소드(데이터)인 프로퍼티 값을 가지고 있어야 하기 때문에
function func(){}
func.prototype // func {}
func.protoyupe.name = "커피사탕"
var o = new func(); // o = func {name : "커피사탕"}
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
Super.prototype = new Ultra();
function Sub(){}
Sub.prototype = new Super();
var o = new Sub();
o.ultraProp = 1;
console.log(o.ultraProp); // 1
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
Super.prototype = new Ultra();
function Sub(){}
Sub.prototype = new Super();
Sub.prototype.ultraProp = 2;
var o = new Sub();
console.log(o.ultraProp); // 2
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
Super.prototype = new Ultra();
function Sub(){}
var s = new Super();
s.ultraProp = 3;
Sub.prototype = s ;
var o = new Sub();
console.log(o.ultraProp); // 3
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
var t = new Ultra();
t.ultraProp = 4;
Super.prototype = t;
function Sub(){}
var s = new Super();
Sub.prototype = s ;
var o = new Sub();
console.log(o.ultraProp); // 4
function Ultra(){}
Ultra.prototype.ultraProp = true;
function Super(){}
var t = new Ultra();
Super.prototype = t;
function Sub(){}
var s = new Super();
Sub.prototype = s ;
var o = new Sub();
console.log(o.ultraProp); // true
'UI개발' 카테고리의 다른 글
자바스크립트 - 콜백의 동기와 비동기 (0) | 2020.08.23 |
---|---|
이벤트 전파를 중단하는 방법 (0) | 2020.08.23 |
자바스크립트 객체지향 - 상속 (0) | 2020.08.23 |
자바스크립트 객체지향 - this (0) | 2020.08.23 |
자바스크립트 객체지향 - 전역객체 (0) | 2020.08.23 |