javascript-oop

JavaScript面向对象编程,类声明、继承……

javascript-oop

JavaScript面向对象编程,类声明、继承……

var MyCls = Klass.define({
    constructorfunction(name) { // 构造函数 
        this.name = name;
    },
    method1function() {
        console.log('hello ' + this.name);
    },
    method2function(xy) {
        console.log(+ y);
    },
    method3function(xy) {
        console.log(* y);
    }
});
 
new MyCls('max').method1(); // print 'hello world' 
var SubCls1 = Klass.define(MyCls, {
    method1function() { // 重写父类方法 
        console.log('hi ' + this.name);
    },
    method4function() { // 新方法 
    }
});
 
new SubCls1('max').method1(); // print 'hi world' 
var SubCls2 = Klass.define(MyCls, {
    method1function() {
        this.callParent(); // 调用父类方法 
        console.log('hi ' + this.name);
    },
    method2function(xy) {
        this.callParent([++x, y]); // 传入参数集合 
    },
    method2function() {
        this.callParent(arguments); // 也可以直接传入arguments 
    }
});
 
var s2 = new SubCls2('max');
s2.method1(); // print 'hi world' 
s2.method2(1, 1); // print 3, not 2 
s2.method3(1, 1); // print 1 
var SubCls3 = Klass.define(MyCls, {
    statics: { // 静态属性和方法 
        prop1: 'static property',
        fn1function() {
            console.log('this is a ' + SubCls3.prop1);
        }
    }
});
 
SubCls3.fn1();
npm install javascript-oop --save-dev

在Node中调用:

var Klass = require('javascript-oop');
var MyCls = Klass.define({
    // ... 
});