首页 > 代码库 > js面向对象-继承
js面向对象-继承
定义父类
// 原型模式与构造函数组合function Person(name,age,job) { // 构造函数模式定义实例属性 this.name = name; this.age = age; this.job = job;}Person.prototype = { //原型模式定义方法和共享属性 constructor: Person, //重写原型改变了constructor,修正回来 sayName:function() { alert(this.name); }, sayJob:function() { alert(this.job); }}
定义子类
// 定义Singer类,并指定job为singerfunction Singer(name,age,song) { Person.call(this,name,age,‘singer‘); this.song = song;}
每次调用Singer构造函数都会把Singer的job设置为singer,并增加了一个属性song。
Singer继承Person
Singer.prototype = new Person();Singer.prototype.constructor = Singer;Singer.prototype.saySong = function() { alert(this.song);}
第一步把Singer的原型设置为Person的实例对象,第二步修正constructor指向,因为Singer的prototype等于Person,所以它的constructor指向的Person函数,第三步添加了一个Singer对象的方法。
创建Singer对象
var TaylorSwift = new Singer(‘Taylor Swift‘,22,‘Love Story‘);TaylorSwift.saySong(); //"Love Story"TaylorSwift.sayJob(); //"singer"
js面向对象-继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。