原型的一个小题目

题目要求:创建一个shape对象,该对象有一个type属性和getType()方法;定义一个原型为shape的Triangle()构造函数,用Triangle()创建的对象应有三个对象属性—-a、b、c,分别用于表示三角形的三条边;在对象原型中添加一个名为getPerimeter()的新方法,用下面的代码来进行测试:

var t = new Triangle(1,2,3);
t.constructor===Triangle;——true
shape.isPrototypeOf(t);——true
t.getPerimeter();——6
t.getType();——"triangle"

解答如下:

//创建shape对象
var shape={
	type:shape,
	getType:function(){
	   return this.type;
	}
}
//创建Triangle构造器函数
function Triangle(a,b,c){
    this.type="triangle";
	this.a=a;
	this.b=b;
	this.c=c;
}
//要求Triangle的原型是shape
Triangle.prototype=shape;
//为对象原型添加方法
shape.getPerimeter=function(){
	return this.a+this.b+this.c;
};
//重置相应的constructor属性
Triangle.prototype.constructor=Triangle;

 

你可能感兴趣的:(原型的一个小题目)