码迷,mamicode.com
首页 > Web开发 > 详细

js面向对象-继承

时间:2014-08-24 17:57:52      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:blog   java   io   ar   div   cti   log   new   javascript   

定义父类

// 原型模式与构造函数组合
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为singer
function 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面向对象-继承

标签:blog   java   io   ar   div   cti   log   new   javascript   

原文地址:http://www.cnblogs.com/yoomin/p/3932995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!