/** * 演示JS面相对象,包括类的创建,继承,方法重写 * 运行:node testClass.js */ const {Class} = require('./common/Class') function testClass() { //------------------------- // JS类的创建,继承 //------------------------- // 例子1:------------------------- // 创建一个父类 var Person = Class.create({ // 构造函数 init:function(option){ this.name = option.name; } ,getName:function() { return this.name; } }); // 声明类实例 var Jim = new Person({name:'Jim'}); console.log('Jim name:' + Jim.getName()) //例子2:------------------------- // 创建一个类,继承Person类,并重写getName var Man = Class.create({ init:function(option) { this._super(option);// 调用父类构造函数 this.age = option.age; } // 重写父类方法 ,getName:function() { // 调用父类的getName() var name = this._super(); return '我重写了getName方法:{'+name+'}'; } },Person); var man = new Man({name:'Tom',age:22}); console.log('man name:' + man.getName()) console.log('Jim instanceof Person: ' + (Jim instanceof Person)); console.log('man instanceof Person: ' + (man instanceof Person)); } testClass()