父类
function Person(name, age) { this.name = name; this.age = age;}Person.prototype = { eat: function () { console.log(this.name + '正在吃饭...'); }, sang: function () { console.log(this.name + '正在唱歌...'); }};var liuyu = new Person('刘雨', 26);
子类
function Student(name, age, score) { Person.call(this, name, age); this.score = score;}
封装一个 extends 方法
//子类 extends 父类Function.prototype.extends = function (func, options) { for (var key in func.prototype) { this.prototype[key] = func.prototype[key]; } for (var name in options) { this.prototype[name] = options[name]; }};
子类可以继承父类的属性和方法,也可以扩展自己的属性和方法。extends 方法参数:1.父类 2.需要扩展的属性和对象的一个对象集合。
Student.extends(Person, { study: function () { console.log(this.name + '正在学习...'); }});var can = new Student('can', 22, '良好');can.eat();can.work();