$defined = function (v) {
return v != 한정되지 않은;
}
클래스 = 함수 () {
var base = {};
for (var k=0; k
//{{새로운 인수[k]()를 맞춤 생성자 필드로 사용합니다.
var o = 인수[k].prototype;
o.constructor = 인수[k];
인수[k].call(o);
//}}
for (키 입력 o) base[키] = o[키];
}
함수 Klass() {
// 모든 클래스에 대해 하나의 객체 캐시.
var clso = null;
function klass() {
if (arguments.length<=0 && clso!=null) {
// 캐시 적중.
반품 clso;
}
if ($define(this.constructor.init)) {
// 클래스 초기화를 위해 init()를 사용하세요.
this.constructor.init.apply(this, 인수);
}
clso = 이것;
}
klass.prototype = base;
반납 수업;
}
Klass() 반환;
}
A = new Class();
A.init = 함수 () {
this.x = 400;
this.y = 300;
}
B = 새 클래스(A);
B.init = 함수 () {
this.y = 200;
this.z = 100;
}
C = 새 클래스(B);
C.init = 함수 () {
this.z = 0;
}
c = new C();
경고(c.x);
경고(c.y);
경고(c.z);